HOME >> Tips >> Microsoft SQL Server

SQL Server に発行されたクエリをログに出力する方法

2014/11/07
文書番号:20321

SQL Server に対してどんなSQLが実行されているのか調べる方法について。

自分で作ったものであればプログラムを調べればいいですが、他者(社)製の場合にはそうもいきません。

SQL Server の機能で実行されたSQLをすべてログに出力して確認することができます。

【設定手順】

  1. SQL Server 起動時にトレースフラグ4032 を ON に指定して起動させます。
    
    rem SQL Server サービスを停止(停止している場合は不要)
    net stop MSSQLSERVER
    
    rem SQL Server サービスを開始
    net start MSSQLSERVER /T4032
    
    ※「MSSQLSERVER」の部分は実際のSQL Server のインスタンス名に置き換えてください
    


    クリックで拡大

  2. 以下のコマンドを実行します。
    コマンド実行移行に実行されたSQL はすべてログに出力されるようになります。
    
    dbcc traceon(3605, -1)
    

    クリックで拡大

  3. ログを確認します。
    確認したサーバーには以下のフォルダに出力されていました。
    このファイルをメモ帳などのテキストエディタで開きます。
    C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\ERRORLOG
    クリックで拡大

  4. ログの出力を停止するには以下のコマンドを実行します。
    
    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