web-dev-qa-db-ja.com

SQL Server:クエリがキャンセルされた場合、どこでデータを取得しますか?

sys.dm_exec_query_statsを使用してクエリを追跡するとします。クエリが正常に終了した場合、sys.dm_exec_query_statsで関連する統計を見つけることができます。ただし、クエリがキャンセルされた場合、sys.dm_exec_query_statsには、そのクエリの統計(ユーザーがキャンセルするまでの実行時間、I/O使用など)がありません。

この情報を入手できる場所は他にありますか?

4
Jean

かなり頻繁にsys.dm_exec_requestsをポーリングするか、トレース/拡張イベントを使用して、中止で終了したクエリをターゲットにする必要があります。私がSQL Sentryで働いている免責事項を使用して、 Performance Advisor -特に-上位SQLのしきい値(デフォルトでは5秒ですが、それは構成可能)。他の監視ツールが同様のことを行う可能性があります。

4
Aaron Bertrand

SQL Server 2016以降では、これを Query Store を使用して追跡できます。 sys.query_store_runtime_stats キャンセルされたクエリの統計をexecution_type '中止'として明示的に強調表示します。

2
Remus Rusanu