今回は、SQL Profiler を使用するサンプルを掲載します。10秒以上かかるクエリを取得するようプロファイラのトレースを設定します。

動作確認は SQL Server 2005 Developer Edition を使用します。

1. SQL Profilerを使用する

1.1 SQL Profiler を起動する

SQL Profiler を起動するには、スタート→すべてのプログラム→SQL Server 2005→パフォーマンスツール→SQL Server Profiler と展開してSQL Server Profiler を起動します。

1.2 トレースの開始

SQL Server Profiler が起動したら、メニューのファイル→新しいトレースでプロファイル情報を取得するデータベースサーバに接続します。トレースのプロパティ画面が表示されるので、トレース名に"時間のかかるクエリの取得"とし、使用するテンプレートにTSQL_Duration を選択します。

次のプロパティ画面のイベントの選択タブをクリックします。プロファイラを実行すると採取されるイベントと取得されるデータが表示されます。テンプレートで指定したイベント、データ以外の項目を取得するように設定する場合は、すべてのイベントを表示するオプションとすべての列を表示するオプションを選択します。

採取するイベントを10秒以上かかるクエリに限定するために、列のフィルタボタンを選択します。

フィルタの編集ダイアログが表示されるので、Duration列を選択し、フィルタ条件として10000(ミリ秒)以上を設定します。OKボタンをクリックしてフィルタの編集ダイアログを閉じます。

トレースのプロパティ画面で実行ボタンをクリックして、プロファイラを開始します。開始すると次のようのプロファイラを実行中に該当した情報がプロファイルの結果に出力されていきます。

1.3  トレースを停止する

トレースの停止はツールバーの赤い四画を選択するか、SQLプロファイラのファイルメニューからトレースの停止を選択します。

トレース結果はファイルやデータベースの保存できます。

2. まとめ

今回の説明は以上です。 誤り、指摘点などがありましたらご連絡ください。

SQL Profiler はボトルネックとなっているクエリの実行時間などの情報や、アプリとDB間でやり取りされているクエリ情報などを取得できる便利なツールなので、使えるようにしておきたいです。