コマンド プロンプトで Database Experimentation Assistant を実行する
注意
このツールは、2024 年 12 月 15 日に廃止される予定です。 問題が発生しても、その問題に対するこのツールへのサポートを停止し、バグ修正や追加の更新プログラムは発行しません。
この記事では、Database Experimentation Assistant (DEA) でトレースをキャプチャし、結果をすべてコマンド プロンプトから分析する方法について説明します。
注意
各 DEA 操作の詳細については、次のコマンドを実行します。
Deacmd.exe -o <operation> --help
操作名が必要です。 有効な操作は、Analysis、StartCapture、および StopCapture です。
DEA コマンドを使用して新しいワークロード キャプチャを開始する
新しいワークロード キャプチャを開始するには、コマンド プロンプトで次のコマンドを実行します。
Deacmd.exe -o StartCapture -n <Trace FileName> -x <Trace Format> -h <SQLServerInstance> -f <database name> -e <Encrypt Connection> -m <Authetication 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 マネージド インスタンス)。 |
-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 を使用している場合は、次の手順を実行します。
分散再生コントローラー コンピューターにサインインします。
DEA コマンドを使用してキャプチャしたワークロード トレースを IRF ファイルに変換するには、次のコマンドを実行します。
DReplay preprocess -m "dreplaycontroller" -i "Path to first trace file" -d "<Folder path on controller>\IrfFolder"
StartReplayCaptureTrace.sql を使用して、SQL Server を実行しているターゲット コンピューターでトレース キャプチャを開始します。
a. SQL Server Management Studio (SSMS) で、<Dea_InstallPath>\Scripts\StartReplayCaptureTrace.sql を開きます。
b. 指定した時間が経過してもトレース キャプチャが自動的に停止しないように
Set @durationInMins=0
を 実行します。c. トレース ファイルあたりの最大ファイル サイズを設定するには、
Set @maxfilesize
を実行します。 推奨サイズは 200 MB です。d.
@Tracefile
を編集して、トレース ファイルの一意の名前を設定します。e. ワークロードを特定のデータベースでのみキャプチャする必要がある場合は、データベース名を指定するように
@dbname
を編集します。 既定では、サーバー全体のワークロードがキャプチャされます。ターゲット SQL Server インスタンスに対して IRF ファイルを再生するには、次のコマンドを実行します。
DReplay replay -m "dreplaycontroller" -d "<Folder Path on Dreplay Controller>\IrfFolder" -o -s "SQL2016Target" -w "dreplaychild1,dreplaychild2,dreplaycild3,dreplaychild4"
a. 状態を監視するには、次のコマンドを実行します。
DReplay status -f 1
b. たとえば、通過する割合が予想よりも低い場合に再生を停止するには、次のコマンドを実行します。
DReplay cancel
ターゲット SQL Server インスタンスでトレース キャプチャを停止します。
SSMS で、[<Dea_InstallPath>\Scripts\StopCaptureTrace.sql] を開きます。
SQL Server を実行しているターゲット コンピューター上のトレース ファイル パスと一致するように編集
@Tracefile
します。SQL Server を実行しているターゲット コンピューターに対してスクリプトを実行します。
InBuilt Replay を使用する
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 マネージド インスタンス)。 |
-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。 |
関連項目
- 詳細については、「Database Experimentation Assistant の概要」を参照してください。