Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

SQLServer

SQLServerでクエリの履歴のトレースログを出力する方法

投稿日:2021年6月11日 更新日:

 

<目次>

(1) SQLServerでクエリの履歴のトレースログを出力する方法
 (1-1) 概要
 (1-2) 手順
 (1-3) (参考)トレースの出力状況の確認方法
 (1-4) (参考)トレースログの適用範囲について

(1) SQLServerでクエリの履歴のトレースログを出力する方法

(1-1) 構文

SQLServerは非常に多くの種類(500種類以上)のトレースを出力する事が可能です。その中でも今回は「クライアントから発行されたSQL」をログに出力する方法をご紹介します。
 

(1-2) 手順

(STEP1)構成マネージャーを開く

左下の検索窓等から「SQL Server構成マネージャー」を開きます。

(図111)

目次にもどる

(STEP2)サービスの選択

左ツリーの「SQL Serverのサービス」を選択します

(図121)

目次にもどる

(STEP3)プロパティを開く

中央メニューからSQLServer ([対象のインスタンス名])のプロパティを開きます。

(図131)

目次にもどる

(STEP4)起動時パラメータの適用

・起動時のパラメータに「-t4032」を入力して「追加」⇒「適用」と押下します。

(図141)


(図142)

・「適用」押下後、サービスの再起動を促すメッセージが表示されます。
(図143)
 

目次にもどる

(STEP5)サービス再起動

サービスから「SQL Server([対象のインスタンス名])を右クリック⇒「再起動」を選択します。

(図151)

目次にもどる

(STEP6)エラーログへの書き込み設定

クエリを裏でトレースするように設定が出来たので、次にその内容をエラーログ(ERRORという名前のログファイル)に出力するように設定します。これにより、テキストエディタ等からもログの内容を確認する事ができます。

(構文)

dbcc traceon([トレースコード])
go

(例)

dbcc traceon(3065)
go

 

(図161)
 

(STEP7)クエリ実行&エラーログへの出力確認

最後にチェックのため、適当なSQLを試しに発行してみて、その結果がログファイルに出力される事を確認します。
 
(図171)SQLの発行
 
エラーログは標準だと以下のパスに格納されています(※「MSSQL」の後ろの数字はバージョンによって変わります)。
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Log
ログの中身を見ると、発行したSQLが記録されている事を確認できます。
 
(図172)ログの確認
 

目次にもどる

(STEP8)トレースをOFFにする

使い終わって不要な場合は下記のいずれかの方法でトレースを無効化します。
 
・①「SQL Server 構成マネージャー」にて追加したトレースを削除
・②traceoffコマンドでトレースをOFFにする
 
(例)
dbcc traceoff([トレースコード])
go

 

目次にもどる

(1-3) (参考)トレースの出力状況の確認方法

どのトレースがON/OFFか?を確認するためには、次のコマンドを利用します。

(構文)

dbcc tracestatus([トレースコード1],[トレースコード2],…)

 

(例)

dbcc tracestatus(4032,3065)

 

(図210)

 

目次にもどる

(1-4) (参考)トレースログの適用範囲について

トレースログは「グローバルレベル(Global Level)に適用(全セッションに適用)」する方式と「現在のセッションへにのみ適用」する方式があります。

上記手順のうち前半の「SQL Serverの構成マネージャー」に指定したやり方(-t4032の方)が「グローバルレベル」の例で、後半のSSMSのクエリウィンドウから発行したやり方(3065の方)が現在のセッションにのみ適用する方式の例です。
 
余談ですが、SSMSからでも第二引数に「-1」を指定した場合は「グローバルレベル(Global Level)」に適用されます。
 
(例)
dbcc traceon(3065,-1)
go
 
トレースコードには「グローバルレベルのみ」しか適用できないものがあり、4032はそれに該当します。よって4032をSSMSでtraceonしようとすると、「無視された」旨のメッセージになりました。
 
(図211)
 

Adsense審査用広告コード


Adsense審査用広告コード


-SQLServer

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

SQLServerのExpressエディションをインストールする手順

<目次> (1) SQLServerのExpressエディションをインストールする手順  (1-1) SQLServerのExpress版インストール手順  (1-2) SSMSのインストール (1) …

SQL Serverで起きる「ハンドシェイクエラー」の原因について

<目次> (1) SQL Serverで起きる「ハンドシェイクエラー」の原因について  (1-1) 発生状況・エラーメッセージ  (1-2) 原因  (1-3) 参考:SSPIとは? (1) SQL …

SQL ServerのAlwaysOn可用性グループ(Availability Groups)とは?

  <目次> (1) SQL ServerのAlwaysOn可用性グループ(Availability Groups)とは?  (1-1) SQL ServerのAlwaysOnとは?  (1 …

OracleデータベースとSQL Serverを冗長性の機能面での比較検討

(0)目次 (1) 冗長性の機能(Oracle)  (1-1) Oracle RAC  (1-2) Oracle Fail Safe (2) 冗長性の機能(SQL Server)  (2-1) Alw …

SQLServerの復旧モデルの「単純」と「完全」と「一括ログ」の違いについて

<目次> (1) SQLServerの復旧モデルの「単純」と「完全」と「一括ログ」の違いについて  (1-1) 復旧モデルの概要  (1-2) 復旧モデルの比較表  (1-3) トランザクションログが …

  • English (United States)
  • 日本語
Top