SQL Server

ライブラリ

当ページでは具体的な処理についてまとめています。

実行しているクエリの確認

実行中のクエリが妙に時間がかかっているとき、本当にクエリが動いているか気になりませんか。それを確認する方法があります。まず、sp_who2というストアドプロシージャを実行してください。

EXECUTE sp_who2 ;

出力結果のなかにあるLastBatchというカラムに注目してください。そこには各処理の開始時刻が格納されています。動いているのか確認したいクエリの処理開始時刻と、先のカラムに格納された開始時刻とを照らし合わせて、最も処理時間が近しいレコードを見つけてください。

次に、そのレコードのカラムDiskIOの値に注目し、その値を確認してください。そして再度、先のクエリを実行します。テーブルが出力されたら再び同じレコードのDiskIOカラムの値を確認してください。その値が増えていれば処理が実行されていることが分かります。値が増えていなければ処理が止まっていることになります。

ところで、大量に出力されるレコードから目的のレコードを見つけ出すのは面倒かもしれません。そのときは先のレコードのカラムSPIDにある値をsp_who2の引数に指定してみてください。目的のレコードのみが出力されます。

EXECUTE sp_who2 ※確認したいレコードのSPID ;