Amazon Relational Database Service (Amazon RDS) for SQL Server でサーバー側のトレースを読み取りたいと考えています。
簡単な説明
Amazon RDS はマネージドサービスであるため、ユーザーにはオペレーティングシステムへのアクセス権が付与されません。SQL サーバーのセルフホステッドインストールを使用する場合は、ホストへのアクセス権があります。プロファイラー GUI を使用してトレースファイルを開くこともできます。クライアント側のトレースを実行して Amazon RDS DB インスタンスにリモートで接続し、トレースを収集できます。これにより、トレースファイルがリモートクライアントで作成されます。プロファイラーはクライアント側のツールであるため、接続が失われるとトレースは停止します。接続が失われるのを回避するには、 サーバー側トレースを実行 できます。
解決策
T-SQL ステートメントを使用してサーバー側のトレースを読み取る
-
次の T-SQL ステートメントのようなコマンドを実行してサーバーで現在実行中のトレースを特定します。
select * from sys.traces;
システムで現在実行中のトレースは、sys.traces カタログビューに含まれています。出力のトレース値のパスを書き留めておきます。このパスはステップ 2 と 3 に必要です。
-
次の fn_trace_gettable 関数のようなコマンドを実行してトレースファイルを読み取ります。
select * from ::fn_trace_gettable('enter_trace_output_value', default);
注:** enter_trace_output_value** をステップ 1 で出力されたトレース値に置き換えます。
-
オプションで、サーバー側のトレース結果をデータベーステーブルに保存できます。その後、以下の fn_trace_gettable 関数のようなコマンドを実行することで、そのデータベーステーブルをチューニングアドバイザーのワークロードとして使用できます。
SELECT * INTO RDSTrace
FROM fn_trace_gettable('enter_trace_output_value', default);
注:** enter_trace_output_value** をステップ 1 で出力されたトレース値に置き換えます。
これらのコマンドは、** D:\rdsdbdata\Log** ディレクトリにある RDSTrace.trc という名前のすべてのファイルの結果を読み込みます。これにより、** RDSTrace_1.trc** などのすべてのロールオーバーファイルが、現在のデータベースにある RDSTrace という名前のテーブルに含められます。
トレースファイルとダンプファイルが蓄積されて、ディスク領域がいっぱいになることがあります。デフォルトでは、7 日を経過したトレースファイルとダンプファイルは Amazon RDS で消去されます。トレースファイルの保持期間を変更するには、** rds\ _set\ _configuration** ストアドプロシージャを使用してトレースファイルの保持期間を設定します。次のストアドプロシージャでは、トレースファイルの保持期間を 24 時間 (1440 分) に設定しています。
exec rdsadmin..rds_set_configuration 'tracefile retention', 1440;
関連情報
トレースファイルおよびダンプファイルの使用
Microsoft SQL Server データベースのログファイル
Database Engine Tuning Advisor を使用して Amazon RDS for SQL Server DB インスタンスのデータベースワークロードを分析する
Amazon RDS for Microsoft SQL Server