Database Experimentation Assistant でトレースをキャプチャする
注意
このツールは、2024 年 12 月 15 日に廃止される予定です。 問題が発生しても、その問題に対するこのツールへのサポートを停止し、バグ修正や追加の更新プログラムは発行しません。
Database Experimentation Assistant (DEA) を使用して、キャプチャされたサーバー イベントのログを含むトレース ファイルを作成できます。 キャプチャされたサーバー イベントは、特定の期間中に特定のサーバーで発生するイベントです。 トレース キャプチャは、サーバーごとに 1 回実行する必要があります。
トレース キャプチャを開始する前に、すべてのターゲット データベースをバックアップしてください。
SQL Server でのクエリ キャッシュは、評価結果に影響を与える可能性があります。 評価結果の一貫性を向上させるために、サービス アプリケーションで SQL Server サービス (MSSQLSERVER) を再起動することをお勧めします。
トレースキャプチャを構成する
DEA の左側のナビゲーション バーで、カメラ アイコンを選択し、[すべてのキャプチャ] ページで [新しいキャプチャ] を選択します。
[新しいキャプチャ] ページの [キャプチャの詳細] で、次の情報を入力または選択します。
キャプチャ名: キャプチャのトレース ファイルの名前を入力します。
形式: キャプチャの形式 (Trace または XEvents) を指定します。
期間: トレース キャプチャを実行する時間 (分単位) を選択します。
キャプチャの場所: トレース ファイルの保存先パスを選択します。
注意
トレース ファイルへのファイル パスは、SQL Server を実行しているコンピューター上にある必要があります。 SQL Server サービスが特定のアカウントに対して設定されていない場合、トレース ファイルを書き込むには、指定したフォルダーへの書き込み権限がサービスに必要になる場合があります。
[はい、手動でバックアップを作成しました...] チェック ボックスをオンにして、バックアップを作成したことを確認します。
[キャプチャの詳細] で、次の情報を入力または選択します。
- サーバーの種類: SQL Server の種類 (SqlServer、AzureSqlDb、AzureSqlManagedInstance) を指定します。
- サーバー名: SQL Server のサーバー名または IP アドレスを指定します。
- 認証の種類: 認証の種類に [Windows] を選択します。
- データベース名: データベース トレースを開始するデータベースの名前を入力します。 データベースを指定しない場合、サーバー上のすべてのデータベースでデータベーストレースが実行されます。
シナリオに応じて、[接続を暗号化する] および [サーバー証明書を信頼する] のチェックボックスをオンまたはオフにします。
トレース キャプチャを開始する
必要な情報を入力または選択したら、[開始] を選択してトレース キャプチャを開始します。
入力した情報が有効であれば、トレース キャプチャ プロセスが開始します。 それ以外の場合は、無効なエントリを含むテキスト ボックスが赤で強調表示されます。 エラーが発生した場合は、必要なエントリを修正し、[開始] をもう一度選択します。
トレース キャプチャの実行中、キャプチャの詳細の下に、トレース キャプチャ プロセスの状態と進行状況が表示されます。
トレース キャプチャの実行が完了すると、新規に作成されたトレースファイル (.trc) が初期構成時に指定した キャプチャの場所 に保存されます。
トレース ファイルには、SQL Server データベースのアクティビティのトレース結果が含まれています。 .trc ファイルは、SQL Server によって検出および報告されるエラーに関する詳細情報を提供するように設計されています。
トレースキャプチャについてよく寄せられる質問
DEA に関してよく寄せられる質問 (FAQ) を以下に取り上げます。
Q: 運用データベースでトレース キャプチャを実行すると、どのようなイベントがキャプチャされますか?
次の表に、DEA がトレース用に収集するイベントと対応する列データを示します。
Event Name | テキストデータ (1) | バイナリデータ (2) | データベースID (3) | ホスト名 (8) | アプリケーション名 (10) | ログイン名(11) | SPID (12) | 開始時刻 (14) | 終了時刻 (15) | データベース名 (35) | イベント シーケンス (51) | IsSystem (60) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
RPC:Completed (10) | * | * | * | * | * | * | * | * | * | * | * | |
RPC:Starting (11) | * | * | * | * | * | * | * | * | * | * | ||
RPC Output Parameter (100) | * | * | * | * | * | * | * | * | * | * | ||
SQL:BatchCompleted (12) | * | * | * | * | * | * | * | * | * | * | * | |
SQL:BatchStarting (13) | * | * | * | * | * | * | * | * | * | * | ||
Audit Login (14) | * | * | * | * | * | * | * | * | * | * | * | |
Audit Logout (15) | * | * | * | * | * | * | * | * | * | * | * | |
ExistingConnection (17) | * | * | * | * | * | * | * | * | * | * | * | |
CursorOpen (53) | * | * | * | * | * | * | * | * | * | * | ||
CursorPrepare (70) | * | * | * | * | * | * | * | * | * | * | ||
Prepare SQL (71) | * | * | * | * | * | * | * | * | * | |||
Exec Prepared SQL (72) | * | * | * | * | * | * | * | * | * | |||
CursorExecute (74) | * | * | * | * | * | * | * | * | * | * | ||
CursorUnprepare (77) | * | * | * | * | * | * | * | * | * | * | ||
CursorClose (78) | * | * | * | * | * | * | * | * | * | * |
Q: トレース キャプチャの実行中に、実稼働サーバーにパフォーマンスの影響はありますか。
はい。トレース収集時間のパフォーマンスへの影響は最小限です。 テストでは、メモリ負荷は約 3% でした。
Q: 運用環境のワークロードでトレースをキャプチャするには、どのような種類のアクセス許可が必要ですか?
- DEA アプリケーションでトレース操作を実行する Windows ユーザーは、SQL Server を実行しているコンピューターで sysadmin 権限を持っている必要があります。
- SQL Server を実行しているコンピューターで使用されるサービス アカウントには、指定されたトレース ファイル パスへの書き込みアクセス権が必要です。
Q: サーバー全体または単一データベース上のトレースのみをキャプチャできますか。
DEA を使用して、サーバー内のすべてのデータベースまたは単一データベースのトレースをキャプチャできます。
Q: 運用環境でリンク サーバーを構成しました。 これらのクエリはトレースに表示されますか?
サーバー全体のトレース キャプチャを実行している場合、トレースはリンク サーバー クエリを含むすべてのクエリをキャプチャします。 サーバー全体のトレース キャプチャを実行するには、[新しいキャプチャ] の下の [データベース名] ボックスを空のままにします。
Q: 運用環境のワークロード トレースの推奨される最小時間はいくつですか?
ワークロード全体を最もよく表す時間を選択することをお勧めします。 そうすることで、分析はワークロード内のすべてのクエリで実行されます。
Q: トレース キャプチャを開始する直前にデータベース バックアップを作成することはどれだけ重要ですか?
トレース キャプチャを開始する前に、すべてのターゲット データベースを必ずバックアップしてください。 ターゲット 1 とターゲット 2 でキャプチャされたトレースが再生されます。 データベースの状態が同じでない場合、実験の結果には偏りが生じます。
Q: トレースではなく XEvent を収集することはできますか。XEvent を再生できますか?
はい。 DEA では XEvent がサポートされています。 最新バージョンの DEA をダウンロードして、試してみてください。
トレース キャプチャのトラブルシューティング
トレース キャプチャの実行時にエラーが表示される場合は、次の点を確認します。
- SQL Server を実行しているサーバー コンピューターの名前。 確認するには、SQL Server Management Studio (SSMS) を使用して、SQL Server を実行しているコンピューターに接続してみてください。
- ファイアウォールの構成では、SQL Server を実行しているコンピューターへの接続はブロックされません。
- ユーザーは、再生に関する FAQ に記載されているアクセス許可を持っています。
- トレース名が、標準のロールオーバー規則 (Capture_1) に従っていません。 代わりに、Capture_1A や Capture1 などのトレース名を試してください。
表示される可能性のあるエラーと、それらを解決するための解決策を次に示します。
考えられるエラー | 解決策 |
---|---|
ターゲット SQL Server でトレースを開始できません。必要なアクセス許可があるかどうか、および指定されたトレース ファイル パス Sql エラー コード (53)への書き込みアクセス権が SQL Server アカウントにあるかどうかを確認します | DEA ツールを実行しているユーザーは、SQL Server を実行しているコンピューターにアクセスできる必要があります。 ユーザーには sysadmin ロールが割り当てられている必要があります。 |
ターゲット SQL Server でトレースを開始できません。必要なアクセス許可があるかどうか、および指定されたトレース ファイル パス Sql エラー コード (19062) への書き込みアクセス権が SQL Server アカウントにあるかどうかを確認します | 指定されたトレース パスが存在しないか、SQL Server サービスが実行されているアカウント (NETWORK SERVICE など) に対する書き込みアクセス許可がない可能性があります。 パスが通っていて、トレースを開始するために必要なアクセス許可が必要です。 |
現在、ターゲット サーバーで DEA トレースが実行されています。 | アクティブなトレースは、ターゲット サーバーで既に実行されています。 サーバー全体のトレースが既に実行されている場合、新しいトレースを開始することはできません。 |
トレースをキャプチャするために要求されたデータベースを開くできません。 このエラーは、データベース名が正しくない場合に発生する可能性があります。 | 指定したデータベースが存在しないか、現在のユーザーがアクセスできません。 正しいデータベース名を使用します。 |
Sql エラー コードで示されているエラー以外のエラーが表示される場合は、「データベース エンジンエラー」の詳細な説明を参照してください。
関連項目
- キャプチャしたトレースを再生する前に SQL Server で分散再生ツールを構成する方法については、「Database Experimentation Assistant の分散再生を構成する」を参照してください。