行を返さないことが保証されている以下のようなクエリは、いずれかのサーバーで0〜160秒かかります。
select col1, col2, col3
from tab1
where 0 = 1
2週間前、これは48時間の間隔で6回発生しました。先週、同じクエリにかかった時間は〜0秒でした。アプリケーションのSQLのログはありますが、容疑者はまだ見つかりません。さらに、上位0 / where 0 = 1タイプのクエリはデータページにヒットしないので、行/ページ/テーブルレベルのデータロックに耐性があると思いましたか?スキーマは(既知の)SQLの影響を受けません。
問題が一貫しておらず、サーバーに非常に大きな負荷がかかっているため、SQLプロファイラーを接続する前に何が起こっているのかについての理論を理解したいと思います。他のクエリは、これらの遅延中に問題なく実行されます。アプリケーションの既知の問題は、動的に作成された多数のSQLクエリです-48時間にわたって合計850k(ログ)クエリのうち約200kの一意のクエリは、このような問題を引き起こす可能性がありますか?
サーバーはSQL Server 2005 Standard Edition、96 GB RAM、SAN上のディスクおよび4 CPU / 16コアを実行しています。データベースファイルとファイルグループは十分に最適化されており、問題にはなりません(ただし、これについては個別に調査しています)。
どこを見ればよいかについてのポインタは大歓迎です。
編集:完璧です!クエリを再生して実行プランを追加したところ、1分35秒かかりました。クエリ期間を示す実行プランとスクリーンショットは次のとおりです。

編集2:2回目の実行の統計時間の詳細。現在、一貫して遅いようですので、プロファイラーとperfmonを接続します:
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 97402 ms.
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.
