次の方法で共有


コマンド プロンプトでデータベース実験アシスタントを実行する

手記

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

この記事では、データベース実験アシスタント (DEA) でトレースをキャプチャし、結果をすべてコマンド プロンプトから分析する方法について説明します。

各 DEA 操作の詳細については、次のコマンドを実行します。

deacmd.exe -o <operation> --help

操作名が必要です。 有効な操作は、分析StartCapture、および StopCaptureです。

DEA コマンドを使用して新しいワークロード キャプチャを開始する

新しいワークロード キャプチャを開始するには、コマンド プロンプトで次のコマンドを実行します。

deacmd.exe -o StartCapture -n <Trace FileName> -x <Trace Format> -h <SQLServerInstance> -f <database name> -e <Encrypt Connection> -m <Authentication Mode> -u <user name> -p <password> -l <Location of Output Folder> -d <duration>

例えば:

deacmd.exe -o StartCapture -n sql2008capture -x 0 -h localhost -f adventureworks -e --trust -m 0 -l c:\test  -d 60

deacmd.exe コマンドを使用して新しいワークロード キャプチャを開始する場合は、次のオプションを使用できます。

オプション 説明
-n--name 必須。 トレース ファイル名。
-x--format 必須。 トレースの形式 (0 = トレース、1 = XEvent)。
-d--duration 必須。 キャプチャの最大期間 (分単位)。
-l--location 必須。 ホスト コンピューターにトレースまたは XEvent ファイルを格納するための出力フォルダーの場所。
-t--type 既定値: 0。 SQL Server の種類 (0 = SqlServer、1 = AzureSQLDB、2 = Azure SQL Managed Instance)。
-h--host 必須。 キャプチャを開始する SQL Server ホスト名またはインスタンス名。
-e--encrypt 既定値: True。 SQL Server インスタンスへの接続を暗号化します。
--trust 既定値: False。 SQL Server インスタンスへの接続中にサーバー証明書を信頼する。
-f--databasename トレースをフィルター処理するデータベースの名前 (指定されていない場合)、キャプチャはすべてのデータベースで開始されます。
-m--authmode 既定値: 0。 認証モード (0 = Windows、1 = Sql 認証)。
-u--username SQL Server に接続するためのユーザー名。
-p--password SQL Server に接続するためのパスワード。

ワークロード キャプチャを再生する

Distributed Replay を使用している場合は、次の手順を実行します。

  1. 分散再生コントローラー コンピューターにサインインします。

  2. DEA コマンドを使用してキャプチャしたワークロード トレースを IRF ファイルに変換するには、次のコマンドを実行します。

    DReplay preprocess -m "dreplaycontroller" -i "Path to first trace file" -d "<Folder path on controller>\IrfFolder"
    
  3. StartReplayCaptureTrace.sqlを使用して、SQL Server を実行しているターゲット コンピューターでトレース キャプチャを開始します。

    1. SQL Server Management Studio (SSMS) で、<Dea_InstallPath>\Scripts\StartReplayCaptureTrace.sqlを開きます。

    2. Set @durationInMins=0 を実行して、指定した時間が経過してもトレース キャプチャが自動的に停止しないようにします。

    3. トレース ファイルあたりの最大ファイル サイズを設定するには、Set @maxfilesize実行します。 推奨サイズは 200 MB です。

    4. @Tracefile を編集して、トレース ファイルの一意の名前を設定します。

    5. ワークロードを特定のデータベースでのみキャプチャする必要がある場合は、@dbname を編集してデータベース名を指定します。 既定では、サーバー全体のワークロードがキャプチャされます。

  4. ターゲット SQL Server インスタンスに対して IRF ファイルを再生するには、次のコマンドを実行します。

    DReplay replay -m "dreplaycontroller" -d "<Folder Path on Dreplay Controller>\IrfFolder" -o -s "SQL2016Target" -w "dreplaychild1,dreplaychild2,dreplaychild3,dreplaychild4"
    
    1. 状態を監視するには、次のコマンドを実行します。
    DReplay status -f 1
    
    1. たとえば、パスの割合が予想よりも低い場合に再生を停止するには、次のコマンドを実行します。
    DReplay cancel
    
  5. ターゲット SQL Server インスタンスでトレース キャプチャを停止します。

  6. SSMS で、\Scripts\StopCaptureTrace.sql <Dea_InstallPath>開きます。

  7. @Tracefile を編集して、SQL Server を実行しているターゲット コンピューターのトレース ファイル パスと一致させます。

  8. SQL Server を実行しているターゲット コンピューターに対してスクリプトを実行します。

組み込みの再生を使用する

InBuilt Replay を使用している場合は、分散再生を設定する必要はありません。 コマンド プロンプトで InBuilt Replay を使用する機能は途中です。 現時点では、GUI を使用して、InBuilt Replay を使用して再生を実行できます。

DEA コマンドを使用してトレースを分析する

新しいトレース分析を開始するには、次のコマンドを実行します。

deacmd.exe -o analysis -a <Target1 trace filepath> -b <Target2 trace filepath> -r reportname -h <SQLserverInstance> -e <encryptconnection> -u <username>

例えば:

deacmd.exe -o analysis -a C:\Trace\SQL2008Source\Trace.trc -b C:\ Trace\SQL2014Trace\Trace.trc -r upgrade20082014 -h localhost -e

これらのトレース ファイルの分析レポートを表示するには、GUI を使用してグラフと整理されたメトリックを表示する必要があります。 ただし、分析データベースは指定された SQL Server インスタンスに書き込まれるので、生成された分析テーブルに直接クエリを実行することもできます。

DEA コマンドを使用してトレースを分析する場合は、次のオプションを使用できます。

オプション 説明
-a--traceA 必須。 A インスタンスのイベント ファイルへのファイル パス。 例: C:\traces\Sql2008trace.trc。 ファイルのバッチがある場合は、最初のファイルを選択し、DEA はロールオーバー ファイルを自動的にチェックします。 ファイルが BLOB 内にある場合は、イベント ファイルをローカルに格納するフォルダー パスを指定します。 例: C:\traces\
-b--traceB 必須。 B インスタンスのイベント ファイルへのファイル パス。 例: C:\traces\Sql2014trace.trc。 ファイルのバッチがある場合は、最初のファイルを選択し、DEA はロールオーバー ファイルを自動的にチェックします。 ファイルが BLOB 内にある場合は、イベント ファイルをローカルに格納するフォルダー パスを指定します。 例: C:\traces\
-r--ReportName 必須。 現在の分析に対する名前。 生成される分析レポートは、この名前で識別されます。
-t--type 既定値: 0。 SQL Server の種類 (0 = SqlServer、1 = AzureSQLDB、2 = Azure SQL Managed Instance)。
-h--host 必須。 SQL Server ホスト名またはインスタンス名。
-e--encrypt 既定値: True。 SQL Server インスタンスへの接続を暗号化します。
--trust 既定値: False。 SQL Server インスタンスへの接続中にサーバー証明書を信頼する。
-m--authmode 既定値: 0。 認証モード (0 = Windows、1 = Sql 認証)。
-u--username SQL Server に接続するためのユーザー名。
--p SQL Server に接続するためのパスワード。
--ab 既定値: False。 トレース A のストレージの場所は BLOB 内にあります。 使用する場合は、--abu (Trace A Blob Url) も指定する必要があります
--bb 既定値: False。 トレース B の格納場所は BLOB 内にあります。 使用する場合は、--bbu (Trace B Blob Url) も指定する必要があります
--abu SAS キーを持つインスタンスの BLOB URL。
--bbu SAS キーを持つ B インスタンスの BLOB URL。