トレースツールは 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 をクリックします。
Session 名を入れて、次への画面に行くと、テンプレートを選ぶ画面に来ます。
今回は Query Detail Tracking を選択しました。
そのまま Finish でも良いのですが、次へ、次へ、次へ、次へ、で、Specify Session Data Storage で、データを保存するように設定しました。
* SQL Severがファイルを作成できるフォルダーでないと、Session をスタートした時に Access is denied のエラーになります。 今回は Log フォルダの下に設定しました。
作成したセッションの右クリックして、セッションをスタートします。
セッションをスタートした後で Watch Live Data (ライブ データの監視)をクリックすると、リアルタイムでキャプチャーされたイベントを確認することができます。
この、Watch Live Data なのですが、実行してから表示されるまでちょっと遅く感じます。
データをファイルに保存しておくと、セッションを展開して、以下の event_file を右クリックし、View Target Data でデータを表示することができるので、イベントをキャプチャーしてしまって、こちらで確認するのも良いかもしれません。
ちなみに、上のテーブルに出すカラムはカスタマイズ可能でフィルター機能もあります。
私の場合はプログラムのデバッグに使うことが多いので、今回選択したテンプレートでもことが足りそうですが、必要に応じて取得するイベントを選択してご利用ください。