0

SQL サービスが再起動されると、SQL サーバーはすべての実行計画を削除します。サービスを再開する前にこれらを保存する方法はありますか?

4

1 に答える 1

2

いいえ。

提供できる最も近いものはプラン ガイドですが、プラン ガイドを使用しても、サーバーは再起動後に最初に送信されたときにすべてのクエリを再コンパイルする必要があります。プラン ガイドを使用すると、理論的には、クエリのコンパイル中に必要な作業量を減らすことができます。

マーティンが示唆したように、分析を行いたい場合はクエリプランに関する情報を引き出すことができますが、後でその情報を元に戻すことはできません。

SELECT query_plan FROM sys.dm_exec_cached_plans CROSS APPLY sys.dm_exec_query_plan(plan_handle)

本当に心配な場合は、サービスの再起動後に実行する一連のクエリを設定して、プラン キャッシュにデータを入力します。しかし、それは時間の無駄だと思います。

SQL Server サービスが停止するという単なる事実は、ユーザーが機能停止を経験することを意味します。これには、すでに計画とコミュニケーションが必要です。このような再起動の影響は、再起動時の単なるサービス拒否よりも広範囲に及ぶことを理解すると (使用の最初の数分間は遅くなる可能性があります)、計画とコミュニケーションが少し変わるだけです。何らかの理論上の遅さが大きな問題である場合は、ダウンタイムをより慎重に計画するか、より適切な時間 (おそらく午後 2 時ではなく午前 2 時) を待つ必要があります。

後でクエリを再コンパイルする際に真の問題が発生する可能性がないため、「理論的な遅さ」と言います。クエリは通常、非常に迅速にコンパイルされます。

于 2012-12-04T19:12:44.583 に答える