SQL Serverをperfmonからトレースしてみる [SQL Server]
パフォーマンスモニターにはイベントトレースセッションというものがあります。
OSに何も手を加えていない状態で動いている物がありますが、SQL Serverに仕掛けることもできます。
Widnows 2008R2 + SQL Server 2008でテスト。
1. 名前を指定して実行からperfmonを起動
2. データコレクタセットのイベントトレースセッションを選択
3. イベントトレースプロバイダでSQL Serverの物(例えばMSSQLSERVER Trace)を選択
4. etwcnf.xmlを検索し、探しだし、取りたいイベントのテンプレートidを選ぶ
5. パラメータにidをセットする
6. ETWセッションを開始する
7. イベントを取る
8. ETWセッションを停止する
9. 保存先フォルダでtracerpt.exe etwname.etlを実行(ファイル名は適宜確認)
10. dumpfile.xmlを見てみる
以上でETW採取ができます。試しに7でselectを投げるとdumpfile.xmlには
投げたselectのイベントが含まれます。
例)
<Data Name="TextData">select * from sys.dm_os_schedulers;
こんな情報が含まれます。
同じ情報がプロファイラでも取れますが、こんな方法もありますよ、ということで。
etwcnf.xmlにあるEvent IDはプロファイラで取れるイベントのIDです。
元ネタ、参考URLと画像
http://blogs.msdn.com/sqlqueryprocessing/archive/2006/11/12/using-etw-for-sql-server-2005.aspx
http://msdn.microsoft.com/ja-jp/library/bb630354.aspx
OSに何も手を加えていない状態で動いている物がありますが、SQL Serverに仕掛けることもできます。
Widnows 2008R2 + SQL Server 2008でテスト。
1. 名前を指定して実行からperfmonを起動
2. データコレクタセットのイベントトレースセッションを選択
3. イベントトレースプロバイダでSQL Serverの物(例えばMSSQLSERVER Trace)を選択
4. etwcnf.xmlを検索し、探しだし、取りたいイベントのテンプレートidを選ぶ
5. パラメータにidをセットする
6. ETWセッションを開始する
7. イベントを取る
8. ETWセッションを停止する
9. 保存先フォルダでtracerpt.exe etwname.etlを実行(ファイル名は適宜確認)
10. dumpfile.xmlを見てみる
以上でETW採取ができます。試しに7でselectを投げるとdumpfile.xmlには
投げたselectのイベントが含まれます。
例)
<Data Name="TextData">select * from sys.dm_os_schedulers;
こんな情報が含まれます。
同じ情報がプロファイラでも取れますが、こんな方法もありますよ、ということで。
etwcnf.xmlにあるEvent IDはプロファイラで取れるイベントのIDです。
元ネタ、参考URLと画像
http://blogs.msdn.com/sqlqueryprocessing/archive/2006/11/12/using-etw-for-sql-server-2005.aspx
http://msdn.microsoft.com/ja-jp/library/bb630354.aspx
コメント 0