MW211 EXIT

devlog
MSSQL/エラーログにSQL発行状況を出力
2015年02月04日
SQLの発行状況をリアルタイムでエラーログに出力する方法。

まず、稼働中のインスタンス名を調べる。
「サービス」の「プロパティ」を参照すると
「サービス名」にインスタンス名が表示されている
→例えば「MSSQL$■」

次に、エラーログの位置を調べる。
例えば以下の辺り。
┌──────────────────────────────────────┐
│C:\Program Files\Microsoft SQL Server\MSSQL12.■\MSSQL\Log\ERRORLOG         │
└──────────────────────────────────────┘

準備が出来たら、調査開始。

MSSQLの以下のフラグをONに設定する。
・T3605=トレース結果をエラーログ出力
・T4032=コマンド(SQL文)をトレースする
「T3605」は設定済みなので「T4032」だけ設定し直す

コマンドプロンプト(管理者権限)で、以下の様に停止し再起動する。
┌──────────────────────────────────────┐
│>net stop MSSQL$■                                                          │
│SQL Server (■) サービスを停止中です.                                       │
│SQL Server (■) サービスは正常に停止されました。                            │
│                                                                            │
│>net start MSSQL$■ /T4032                                                  │
│SQL Server (■) サービスを開始します..                                      │
│SQL Server (■) サービスは正常に開始されました。                            │
└──────────────────────────────────────┘

次に「SQL Server Management Studio」以下のコマンドを実行する。
┌──────────────────────────────────────┐
│dbcc traceon(3605, -1)                                                      │
└──────────────────────────────────────┘

これで、ログにコマンド(SQL文)がエラーログにリアルタイムで出力される。

終了するには以下のコマンドを実行する。
┌──────────────────────────────────────┐
│dbcc traceoff(3605, -1)                                                     │
└──────────────────────────────────────┘
フラグも元に戻したい場合には、MSSQL再起動(サーバ再起動)など
分類:MSSQL