非常に奇妙なことが起こっています。 表示システムの特定のデータベースに対してすべてのクエリが定期的に「実行速度が遅い」ことになります。つまり、「通常の速度」で5分間、次に5分間ゆっくりと(大体)。
さらなる調査(「自明」を排除してから数日後)では、クエリがクライアント(Sql Server Management Studio)によって複数回送信され、複数回受信されるように見えることがあります。
つまり、「クライアントから送信されたバイト数」は2倍または3倍になり、「サーバーから受信されたバイト数」も同じです。 「クライアント処理時間」と「合計実行時間」の増加の明らかに類似したパターン。
これはSELECT * FROM table
上のテーブルには3行のデータがあります!
そして1つのクエリが遅くなると、すべて遅くなります。クエリ/結果セットがどれだけ単純か、どの「クライアント」がアクセスしているかは関係ありません(ADO.NETベースのコンソールアプリ/ MVC Webアプリでも同じです)。
任意提案をいただければ幸いです...
[〜#〜]編集[〜#〜]
テストはボックス自体から実行されているため、ネットワーク関連でもありません。
サーバーアクティビティ(http://technet.Microsoft.com/en-us/library/ms175047.aspx)でSQLプロファイルトレースを実行してみてください-テーブル/ページ/インデックスをロックするクエリを同時に実行すると、テーブルロックの問題が発生する可能性があります。
Perfmonを実行してみてください。何かが遅くなると、利用可能なすべてのディスク/ IO/CPU /メモリリソースを使用しているものが実行されている可能性があります。メモリスワッピングを探します。これにより処理速度が低下します。これらのいずれかである場合は、原因を追跡する必要があります。短期間のCPU使用率が100%でも問題ないことに注意してください(実際に最適なパフォーマンスを示している可能性があります)。
また、断片化をチェックし、インデックスの再構築を検討してください。
不要なサービス/アプリケーションをオフにします。これらは、アプリケーションでより適切に使用されるリソースを使い果たします。
すべてが遅く、それがタイミングで本当に一貫している場合、私の推測は障害のあるサーバー上のサービスになるでしょう。
一部のフレーバーはI/Oにフックして、低レベルで何かをキャッチするため、ウイルス保護は明らかな選択です。
また、ネットワークスタックをめちゃくちゃにする更新チェッカーと同じくらい簡単な場合もあります。
バックアップシステムにも障害が発生している可能性があります。
これらのことを調べましたか?
好奇心から、待機統計は何ですか? SSMSからクエリを自分で実行して実行プランを表示してから、遅いものと速いものを比較しましたか?実行ごとの待機統計が何であるかを記録する拡張イベントについてはどうでしょうか。
またはどのように:SELECT * FROM SYS.DM_OS_WAITING_STATS WHERE Session_id =(spid)(私はこれをメモリから書いたので、うまくいくはずです)。
私はそれが何を待っているのか本当に興味があります。また、core/tempdb物理ファイルはいくつありますか?