コマンド プロンプトでデータベース実験アシスタントを実行する
手記
このツールは、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 を使用している場合は、次の手順を実行します。
分散再生コントローラー コンピューターにサインインします。
DEA コマンドを使用してキャプチャしたワークロード トレースを IRF ファイルに変換するには、次のコマンドを実行します。
DReplay preprocess -m "dreplaycontroller" -i "Path to first trace file" -d "<Folder path on controller>\IrfFolder"
StartReplayCaptureTrace.sqlを使用して、SQL Server を実行しているターゲット コンピューターでトレース キャプチャを開始します。
SQL Server Management Studio (SSMS) で、<Dea_InstallPath>\Scripts\StartReplayCaptureTrace.sqlを開きます。
Set @durationInMins=0
を実行して、指定した時間が経過してもトレース キャプチャが自動的に停止しないようにします。トレース ファイルあたりの最大ファイル サイズを設定するには、
Set @maxfilesize
実行します。 推奨サイズは 200 MB です。@Tracefile
を編集して、トレース ファイルの一意の名前を設定します。ワークロードを特定のデータベースでのみキャプチャする必要がある場合は、
@dbname
を編集してデータベース名を指定します。 既定では、サーバー全体のワークロードがキャプチャされます。
ターゲット SQL Server インスタンスに対して IRF ファイルを再生するには、次のコマンドを実行します。
DReplay replay -m "dreplaycontroller" -d "<Folder Path on Dreplay Controller>\IrfFolder" -o -s "SQL2016Target" -w "dreplaychild1,dreplaychild2,dreplaychild3,dreplaychild4"
- 状態を監視するには、次のコマンドを実行します。
DReplay status -f 1
- たとえば、パスの割合が予想よりも低い場合に再生を停止するには、次のコマンドを実行します。
DReplay cancel
ターゲット SQL Server インスタンスでトレース キャプチャを停止します。
SSMS で、\Scripts\StopCaptureTrace.sql <Dea_InstallPath>開きます。
@Tracefile
を編集して、SQL Server を実行しているターゲット コンピューターのトレース ファイル パスと一致させます。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。 |