トレースツールは SQL Server Profiler から Extended Events (拡張イベント)へ

SQL Server Profiler がなくなる?

SQL Server のトレースをとって分析や調査をしたり、特に開発者には T-SQL のステートメントやストアドプロシージャのデバッグに活躍する SQL Server Profiler ですが、残念ながら 「 SQL Server 2016 データベース エンジンの非推奨機能」 にリストされています。

次のバージョンではないようですが、今後のバージョンでサポートされない機能となっています。

[参考] SQL Server 2016 データベース エンジンの非推奨機能

その SQL Server プロファイラーの代替とされているのが、「SQL Server Management Studio に組み込まれている Extended Events Profiler 」 です。


Extended Events(拡張イベント)とは?

Extended Events (拡張イベント)は汎用的なイベント処理システムで、ログツールや、トレースツールとして利用することができます。

大きな利点のひとつは、SQL Server Profiler と比べ、サーバーのリソースをごくわずかしか使わない、軽量なパフォーマンス監視システムであるとのことです。

Extended Events (拡張イベント)でトレースを取得してみる

トレースを取得するには Extended Events (拡張イベント)のセッションを作成します。

Object Explorer で Management > Extended Events > Sessions で右クリックし、New Session Wizard をクリックします。

Extended Events (拡張イベント) 1

Session 名を入れて、次への画面に行くと、テンプレートを選ぶ画面に来ます。

今回は Query Detail Tracking を選択しました。

Extended Events (拡張イベント) 2

そのまま Finish でも良いのですが、次へ、次へ、次へ、次へ、で、Specify Session Data Storage で、データを保存するように設定しました。

Extended Events (拡張イベント) 3

* SQL Severがファイルを作成できるフォルダーでないと、Session をスタートした時に Access is denied のエラーになります。 今回は Log フォルダの下に設定しました。

作成したセッションの右クリックして、セッションをスタートします。

Extended Events (拡張イベント) 4

セッションをスタートした後で Watch Live Data (ライブ データの監視)をクリックすると、リアルタイムでキャプチャーされたイベントを確認することができます。

Extended Events (拡張イベント) 5

Extended Events (拡張イベント) 6

この、Watch Live Data なのですが、実行してから表示されるまでちょっと遅く感じます。

データをファイルに保存しておくと、セッションを展開して、以下の event_file を右クリックし、View Target Data でデータを表示することができるので、イベントをキャプチャーしてしまって、こちらで確認するのも良いかもしれません。

Extended Events (拡張イベント) 7

Extended Events (拡張イベント) 9

ちなみに、上のテーブルに出すカラムはカスタマイズ可能でフィルター機能もあります。

私の場合はプログラムのデバッグに使うことが多いので、今回選択したテンプレートでもことが足りそうですが、必要に応じて取得するイベントを選択してご利用ください。


© 2010-2024 SQL Server 入門