次の方法で共有


データベース実験アシスタントでトレースをキャプチャする

手記

このツールは、2024 年 12 月 15 日 廃止されました。 発生した問題については、このツールのサポートを停止しており、バグ修正やそれ以降の更新プログラムは発行されません。

データベース実験アシスタント (DEA) を使用して、キャプチャされたサーバー イベントのログを含むトレース ファイルを作成できます。 キャプチャされたサーバー イベントは、特定の期間に特定のサーバーで発生するイベントです。 トレース キャプチャは、サーバーごとに 1 回実行する必要があります。

トレース キャプチャを開始する前に、すべてのターゲット データベースをバックアップしてください。

SQL Server でのクエリ キャッシュは、評価結果に影響する可能性があります。 評価結果の一貫性を向上させるために、サービス アプリケーションで SQL Server サービス (MSSQLSERVER) を再起動することをお勧めします。

トレース キャプチャを構成する

  1. DEA の左側のナビゲーションバーでカメラアイコンを選択し、[すべてのキャプチャ] ページで[新しいキャプチャ] を選択します。

    DEA でのキャプチャの作成のスクリーンショット。

  2. [新しいキャプチャ ] ページの [キャプチャの詳細 ] で、次の情報を入力または選択します。

    • キャプチャ名: キャプチャのトレース ファイルの名前を入力します。

    • 形式: キャプチャの形式 (Trace または XEvents) を指定します。

    • 期間: トレース キャプチャを実行する時間 (分単位) を選択します。

    • キャプチャ場所: トレース ファイルの宛先パスを選択します。

      手記

      トレース ファイルへのファイル パスは、SQL Server を実行しているコンピューター上にある必要があります。 SQL Server サービスが特定のアカウントに対して設定されていない場合、トレース ファイルを書き込むには、指定したフォルダーへの書き込みアクセス許可がサービスに必要になる場合があります。

  3. [はい、手動でバックアップを作成しました を選択して、バックアップが作成されたことを確認します。.. チェック ボックスをオンにします。

  4. のキャプチャ詳細に、次の情報を入力または選択します。

    • サーバーの種類の: SQL Server の種類を指定します (SqlServerAzureSqlDbAzureSqlManagedInstance)。
    • サーバー名: SQL Server のサーバー名または IP アドレスを指定します。
    • 認証の種類: 認証の種類として、Windows 選択します。
    • データベース名: データベース トレースを開始するデータベースの名前を入力します。 データベースを指定しない場合、トレースはサーバー上のすべてのデータベースでキャプチャされます。
  5. シナリオに応じて、[接続 の暗号化] チェック ボックスと [信頼サーバー証明書 ] チェック ボックスをオンまたはオフにします。

    新しいキャプチャ ページのスクリーンショット。

トレース キャプチャを開始する

  1. 必要な情報を入力または選択した後、開始 を選択してトレース キャプチャを開始します。

    入力した情報が有効な場合は、トレース キャプチャ プロセスが開始されます。 それ以外の場合は、無効なエントリを含むテキスト ボックスが赤で強調表示されます。 エラーが発生した場合は、必要なエントリを修正し、[ の開始] をもう一度選択します。

    トレース キャプチャの実行中、キャプチャの詳細の下に、トレース キャプチャ プロセスの状態と進行状況が表示されます。

    スクリーンショット:モニターキャプチャの進行状況。

  2. トレース キャプチャの実行が完了すると、新しいトレース (.trc) ファイルは、初期構成時に指定した キャプチャの場所に保存されます。

    完了したトレース キャプチャのスクリーンショット。

    トレース ファイルには、SQL Server データベースのアクティビティのトレース結果が含まれています。 .trc ファイルは、SQL Server によって検出および報告されるエラーに関する詳細情報を提供するように設計されています。

トレース キャプチャに関してよく寄せられる質問

DEA でのトレース キャプチャについてよく寄せられる質問を次に示します。

運用データベースでトレース キャプチャを実行すると、どのようなイベントがキャプチャされますか?

次の表に、DEA がトレース用に収集するイベントと対応する列データを示します。

イベント名 テキスト データ (1) バイナリ データ (2) データベース ID (3) ホスト名 (8) アプリケーション名 (10) ログイン名 (11) SPID (12) 開始時刻 (14) 終了時刻 (15) データベース名 (35) イベント シーケンス (51) IsSystem (60)
RPC:Completed (10) いいえ はい はい はい はい はい はい はい はい はい はい はい
RPC:開始 (11) いいえ はい はい はい はい はい はい はい いいえ はい はい はい
RPC 出力パラメーター (100) はい いいえ はい はい はい はい はい はい いいえ はい はい はい
SQL:BatchCompleted (12) はい いいえ はい はい はい はい はい はい はい はい はい はい
SQL:バッチ開始 (13) はい いいえ はい はい はい はい はい はい いいえ はい はい はい
監査ログイン (14) はい はい はい はい はい はい はい はい いいえ はい はい はい
監査ログアウト (15) はい いいえ はい はい はい はい はい はい はい はい はい はい
既存の接続 (17) はい はい はい はい はい はい はい はい いいえ はい はい はい
CursorOpen (53) はい いいえ はい はい はい はい はい はい いいえ はい はい はい
CursorPrepare (70) はい いいえ はい はい はい はい はい はい いいえ はい はい はい
SQL の準備 (71) いいえ いいえ はい はい はい はい はい はい いいえ はい はい はい
実行 準備されたSQL (72) いいえ いいえ はい はい はい はい はい はい いいえ はい はい はい
CursorExecute (74) はい いいえ はい はい はい はい はい はい いいえ はい はい はい
CursorUnprepare (77) はい いいえ はい はい はい はい はい はい いいえ はい はい はい
カーソルクローズ (78) はい いいえ はい はい はい はい はい はい いいえ はい はい はい

トレース キャプチャが実行されている場合、実稼働サーバーにパフォーマンスの影響はありますか?

はい。トレース収集中のパフォーマンスの影響は最小限です。 テストでは、メモリの圧力が約% の状態にあることがわかりました。

運用環境のワークロードでトレースをキャプチャするには、どのような種類のアクセス許可が必要ですか?

DEA アプリケーションでトレース操作を実行する Windows ユーザーは、SQL Server を実行しているコンピューターで sysadmin 権限を持っている必要があります。

SQL Server を実行しているコンピューターで使用されるサービス アカウントには、指定されたトレース ファイル パスへの書き込みアクセス権が必要です。

サーバー全体または単一データベース上のトレースのみをキャプチャできますか?

DEA を使用して、サーバー内のすべてのデータベースまたは単一データベースのトレースをキャプチャできます。

運用環境でリンク サーバーを構成しました。 これらのクエリはトレースに表示されますか?

サーバー全体のトレース キャプチャを実行している場合、トレースはリンク サーバー クエリを含むすべてのクエリをキャプチャします。 サーバー全体に対してトレースキャプチャを実行するには、[新しいキャプチャ] の下にある [データベース名] ボックスを 空のままにしておきます

ワークロード全体を最もよく表す時間を選択することをお勧めします。 そうすることで、分析はワークロード内のすべてのクエリで実行されます。

トレース キャプチャを開始する直前にデータベース バックアップを作成することはどのくらい重要ですか?

トレース キャプチャを開始する前に、すべてのターゲット データベースを必ずバックアップしてください。 ターゲット 1 とターゲット 2 でキャプチャされたトレースが再生されます。 データベースの状態が同じでない場合、実験の結果は歪みます。

トレースの代わりに XEvent を収集することはできますか。また、XEvent を再生することはできますか?

はい。 DEA では XEvent がサポートされています。 最新バージョンの DEA をダウンロードして、試してみてください。

トレース キャプチャのトラブルシューティング

トレース キャプチャの実行時にエラーが表示される場合は、次の点を確認します。

  • SQL Server を実行しているコンピューターの名前が有効です。 確認するには、SQL Server Management Studio (SSMS) を使用して、SQL Server を実行しているコンピューターに接続してみてください。

  • ファイアウォール構成では、SQL Server を実行しているコンピューターへの接続はブロックされません。

  • ユーザーには、Replay FAQに記載されているアクセス許可があります。

  • トレース名は、標準のロールオーバー規則 (Capture_1) に従っていません。 代わりに、Capture_1Aや Capture1 などのトレース名を試してください。

表示される可能性のあるエラーと、それらを解決するための解決策を次に示します。

考えられるエラー 解決
ターゲット SQL Server でトレースを開始できません。必要なアクセス許可があるかどうか、および指定されたトレース ファイル パス Sql エラー コードへの書き込みアクセス権が SQL Server アカウントにあるかどうかを確認します (53) DEA ツールを実行しているユーザーは、SQL Server を実行しているコンピューターにアクセスできる必要があります。 ユーザーには sysadmin ロールが割り当てられている必要があります。
ターゲット SQL Server でトレースを開始できません。必要なアクセス許可があるかどうか、および指定されたトレース ファイル パス Sql エラー コード (19062) への書き込みアクセス権が SQL Server アカウントにあるかどうかを確認します 指定されたトレース パスが存在しないか、SQL Server サービスが実行されているアカウント (NETWORK SERVICE など) に対する書き込みアクセス許可がない可能性があります。 パスが存在し、トレースを開始するために必要なアクセス許可が必要です。
現在、ターゲット サーバーで DEA トレースが実行されています。 アクティブなトレースは、ターゲット サーバーで既に実行されています。 サーバー全体のトレースが既に実行されている場合、新しいトレースを開始することはできません。
トレースをキャプチャするために要求されたデータベースを開くできません。 このエラーは、データベース名が正しくない場合に発生する可能性があります。 指定したデータベースが存在しないか、現在のユーザーがアクセスできません。 正しいデータベース名を使用します。

Sql エラー コード ラベルが付いたその他のエラーが表示される場合は、データベース エンジンのイベントとエラー の詳細な説明を参照してください。