SQL Server に発行されたクエリをログに出力する方法
2014/11/07
文書番号:20321
SQL Server に対してどんなSQLが実行されているのか調べる方法について。
自分で作ったものであればプログラムを調べればいいですが、他者(社)製の場合にはそうもいきません。
SQL Server の機能で実行されたSQLをすべてログに出力して確認することができます。
【設定手順】
- SQL Server 起動時にトレースフラグ4032 を ON に指定して起動させます。
rem SQL Server サービスを停止(停止している場合は不要) net stop MSSQLSERVER rem SQL Server サービスを開始 net start MSSQLSERVER /T4032 ※「MSSQLSERVER」の部分は実際のSQL Server のインスタンス名に置き換えてください
クリックで拡大
- 以下のコマンドを実行します。
コマンド実行移行に実行されたSQL はすべてログに出力されるようになります。
dbcc traceon(3605, -1)
クリックで拡大
- ログを確認します。
確認したサーバーには以下のフォルダに出力されていました。
このファイルをメモ帳などのテキストエディタで開きます。
C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\ERRORLOG
クリックで拡大
- ログの出力を停止するには以下のコマンドを実行します。
dbcc traceoff(3605, -1)
クリックで拡大
【参考情報】
[MSDN] DBCC TRACEON (Transact-SQL)
http://msdn.microsoft.com/ja-jp/library/ms187329.aspx
[MSDN] トレース フラグ (Transact-SQL)
http://msdn.microsoft.com/ja-jp/library/ms188396.aspx