回答:
サーバーを再起動することは、おそらくパフォーマンスにとって最も有害なものの1つです。つまり、データのコールドキャッシュ、クエリプランのコールドキャッシュを強制し、すべてのSQL Serverの内部キャッシュもプロセスで無効化されます。言うまでもなく、運用統計DMVで収集されたすべての統計を破棄することにより、何かを正常に調査できる可能性が低下します。
このプラクティスを裏付ける公式のガイダンスはありません。良いプラクティスの評判の良い仕事で言及されたのを見たことがありません。しないでください。
他の答えは良いが、重要な部分が欠けている:Windowsのファイルキャッシュ。
64ビットWindowsでは、Windowsがファイルをキャッシュするために使用するメモリ量に上限はありません。Windowsはシステムのメモリを完全に枯渇させる可能性があり、その時点でディスクへのスワップを開始します。いくつかの場所で文書化されています。
SQL Serverを再起動すると、SQLがメモリを強制的に放棄し、それによりWindowsがより多くのメモリを使用できるようになり、ページングが一時的に停止します。SQLは、ほぼゼロのメモリ使用量で再び起動し、徐々に上昇します。また、ボックスのメモリが再びなくなると、再起動が一時的に役立ちます。OS全体を再起動することにより、Windowsのファイルキャッシュの使用を強制的に停止します。
実際の修正:上記のブログ投稿に記載されているように、Windowsサーバーからのファイルのコピーを停止するか、Dynamic File Cache Serviceで使用中のファイルキャッシュの量を制限します。
クエリを高速化する場合、パラメータスニッフィングが関係する可能性があります。がらくた計画がキャッシュされ、不適切な後続の呼び出しに適用される場合、再起動の奇跡により、共通/正しい計画がキャッシュされます。その場合、他の人が示したように、動作を修正するための無限に優れた方法があります。しかし、ボックスの再起動を停止するまで、根本原因分析を実行する方法はありません。
サービスプロパティを変更したり、すぐに有効にするスタートアップトレースを設定したりしない限り、SQL Serverを再起動しないでください。
@RemusRusanuが多くのポイントを述べているように、それは多くのキャッシュをクリアし、SQL Serverに多くの不必要な起動作業をさせます。
このサーバーは専用のSQL Server /データベースサーバーではないようです。実稼働データベースサーバーには、データベースサーバーという目的が1つだけあることがベストプラクティスです。その場合、OS用に十分なメモリとリソースを確保し、他のすべてをSQL Serverに提供します。これにより、他のアプリケーションやサーバーの役割が不足することはありません。
あなたがすべてを正しくしているなら、MSSQLサーバーを再起動/再起動する必要はないかもしれないという感情に同意します。
私には、これは誰もが有能であり、あなたが何でも修正できるシナリオに適用されます。
私はDBAではありません。私は、ソフトウェアアーキテクト、最初から全体のデータベーススキーマを構築し、関与していることの一部だ、残念ながら、私は絶対にしていることを第三者のデータベースで作業していないNOをコントロール。
主要なサードパーティデータベースの1つを作成および保守する人々は、ほとんど機能させませんでした。
私もセキュリティエキスパートでもネットワークエンジニアでもないことを述べましたか?
質問は次のようになります。3か月ごとよりも頻繁にSQL Serverを再起動する必要がありますか?
余分なパフォーマンスを約束するための再起動のスケジューリングは、雨のために踊るようなものです。
多分それは来るでしょう、多分そうはならないでしょうが、あなたはそれが雨を引き起こした原因を確実に知りません。
私はあなたが言って好きではない決してそれが問題のトラブルシューティングやフェイルオーバーを確認するために再起動する必要はありませんが、私はやるランダムに発生するから、未知のパフォーマンス上の問題を保つためにスケジューリング再起動に問題があります。
のみあなたは毎週、それを再起動するか、2はそれが動作して維持するための唯一の方法であると思わ不正なサードパーティのデータベースを管理し、あなたが修正を許可されていない、あるいはそれに触れた場合は例外です。
それでも、修正を探し、所有者と共有し、解決するまで地獄を上げる必要があります。