Ausführen des Datenbankexperiments-Assistenten an einer Eingabeaufforderung
In diesem Artikel wird beschrieben, wie Sie eine Ablaufverfolgung im Datenbankexperiments-Assistenten (DEA) erfassen und dann die Ergebnisse aus einer Eingabeaufforderung analysieren.
Hinweis
Um mehr über jeden DEA-Vorgang zu erfahren, führen Sie den folgenden Befehl aus:
Deacmd.exe -o <operation> --help
Ein Vorgangsname ist erforderlich. Gültige Vorgänge sind "Analysis", "StartCapture" und "StopCapture".
Starten einer neuen Workloaderfassung mithilfe des DEA-Befehls
Um eine neue Workloaderfassung zu starten, führen Sie an einer Eingabeaufforderung den folgenden Befehl aus:
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>
Beispiel:
Deacmd.exe -o StartCapture -n sql2008capture -x 0 -h localhost -f adventureworks -e --trust -m 0 -l c:\test -d 60
Wenn Sie eine neue Workloaderfassung mit dem Deacmd.exe
Befehl starten, können Sie die folgenden Optionen verwenden:
Option | Beschreibung |
---|---|
-n , --name |
Erforderlich. Name der Ablaufverfolgungsdatei. |
-x , --format |
Erforderlich. Format der Ablaufverfolgung (0 = Ablaufverfolgung, 1 = XEvents). |
-d , --duration |
Erforderlich. Maximale Dauer für die Erfassung in Minuten. |
-l , --location |
Erforderlich. Speicherort des Ausgabeordners zum Speichern von Ablaufverfolgungs- oder XEvent-Dateien auf dem Hostcomputer. |
-t , --type |
Standard: 0 Typ des SQL Server (0 = SqlServer, 1 = AzureSQLDB, 2 = Azure SQL Managed Instance). |
-h , --host |
Erforderlich. SQL Server-Hostname oder Instanzname zum Starten der Erfassung. |
-e , --encrypt |
Standardwert: TRUE. Verschlüsseln der Verbindung mit sql Server-Instanz. |
--trust |
Standardwert: False. Vertrauen Des Serverzertifikats beim Herstellen einer Verbindung mit der SQL Server-Instanz. |
-f , --databasename |
Der Name der Datenbank zum Filtern ihrer Ablaufverfolgungen, wenn nicht angegeben, dass die Erfassung für alle Datenbanken beginnt. |
-m , --authmode |
Standard: 0 Authentifizierungsmodus (0 = Windows, 1 = SQL-Authentifizierung). |
-u , --username |
Benutzername für die Verbindung mit sql Server. |
-p , --password |
Kennwort für die Verbindung mit sql Server. |
Wiedergeben einer Workloaderfassung
Wenn Sie verteilte Wiedergabe verwenden, führen Sie die folgenden Schritte aus.
Melden Sie sich beim Computer des verteilten Wiedergabecontrollers an.
Führen Sie den folgenden Befehl aus, um die Workloadablaufverfolgung zu konvertieren, die Sie mithilfe des DEA-Befehls in eine IRF-Datei erfasst haben:
DReplay preprocess -m "dreplaycontroller" -i "Path to first trace file" -d "<Folder path on controller>\IrfFolder"
Starten Sie eine Ablaufverfolgungserfassung auf dem Zielcomputer, auf dem SQL Server mit StartReplayCaptureTrace.sql ausgeführt wird.
a. Öffnen Sie <in SQL Server Management Studio (SSMS) Dea_InstallPath>\Scripts\StartReplayCaptureTrace.sql.
b. Führen Sie die Ausführung
Set @durationInMins=0
aus, damit die Ablaufverfolgungserfassung nach einer bestimmten Zeit nicht automatisch beendet wird.c. Führen Sie die Ausführung aus
Set @maxfilesize
, um die maximale Dateigröße pro Ablaufverfolgungsdatei festzulegen. Die empfohlene Größe beträgt 200 MB.d. Bearbeiten,
@Tracefile
um einen eindeutigen Namen für Ihre Ablaufverfolgungsdatei festzulegen.e. Bearbeiten,
@dbname
um einen Datenbanknamen anzugeben, wenn die Arbeitsauslastung nur in einer bestimmten Datenbank erfasst werden muss. Standardmäßig wird die Workload auf dem gesamten Server erfasst.Führen Sie den folgenden Befehl aus, um die IRF-Datei für die SQL Server-Zielinstanz wiederzugeben:
DReplay replay -m "dreplaycontroller" -d "<Folder Path on Dreplay Controller>\IrfFolder" -o -s "SQL2016Target" -w "dreplaychild1,dreplaychild2,dreplaycild3,dreplaychild4"
a. Führen Sie den folgenden Befehl aus, um den Status zu überwachen:
DReplay status -f 1
b. Um die Wiedergabe zu beenden, führen Sie beispielsweise den folgenden Befehl aus, wenn sie sehen, dass der Durchlaufprozentsatz niedriger als erwartet ist:
DReplay cancel
Beenden Sie die Ablaufverfolgungserfassung in der SQL Server-Zielinstanz.
Öffnen Sie <in SSMS Dea_InstallPath>\Scripts\StopCaptureTrace.sql.
Bearbeiten,
@Tracefile
um dem Pfad der Ablaufverfolgungsdatei auf dem Zielcomputer zu entsprechen, auf dem SQL Server ausgeführt wird.Führen Sie das Skript für den Zielcomputer aus, auf dem SQL Server ausgeführt wird.
Verwenden der Wiedergabe von InBuilt
Wenn Sie InBuilt Replay verwenden, müssen Sie keine verteilte Wiedergabe einrichten. Die Möglichkeit zur Verwendung von InBuilt Replay an der Eingabeaufforderung ist unterwegs. Derzeit können Sie unsere GUI verwenden, um die Wiedergabe mit InBuilt Replay auszuführen.
Analysieren von Ablaufverfolgungen mithilfe des DEA-Befehls
Führen Sie den folgenden Befehl aus, um eine neue Ablaufverfolgungsanalyse zu starten:
Deacmd.exe -o analysis -a <Target1 trace filepath> -b <Target2 trace filepath> -r reportname -h <SQLserverInstance> -e <encryptconnection> -u <username>
Beispiel:
Deacmd.exe -o analysis -a C:\Trace\SQL2008Source\Trace.trc -b C:\ Trace\SQL2014Trace\Trace.trc -r upgrade20082014 -h localhost -e
Um die Analyseberichte dieser Ablaufverfolgungsdateien anzuzeigen, müssen Sie die GUI verwenden, um Diagramme und organisierte Metriken anzuzeigen. Die Analysedatenbank wird jedoch in die angegebene SQL Server-Instanz geschrieben, sodass Sie auch die generierten Analysetabellen direkt abfragen können.
Beim Analysieren von Ablaufverfolgungen mithilfe des DEA-Befehls können Sie die folgenden Optionen verwenden:
Option | Beschreibung |
---|---|
-a , --traceA |
Erforderlich. Dateipfad zur Ereignisdatei für die A-Instanz. Beispiel: C:\traces\Sql2008trace.trc. Wenn eine Reihe von Dateien vorhanden ist, wählen Sie die erste Datei aus, und DEA sucht automatisch nach Rolloverdateien. Wenn sich Dateien im BLOB befinden, geben Sie den Ordnerpfad an, in dem die Ereignisdateien lokal gespeichert werden sollen. Beispiel: C:\traces\ |
-b , --traceB |
Erforderlich. Dateipfad zur Ereignisdatei für die B-Instanz. Beispiel: C:\traces\Sql2014trace.trc. Wenn eine Reihe von Dateien vorhanden ist, wählen Sie die erste Datei aus, und DEA sucht automatisch nach Rolloverdateien. Wenn sich Dateien im BLOB befinden, geben Sie den Ordnerpfad an, in dem die Ereignisdateien lokal gespeichert werden sollen. Beispiel: C:\traces\ |
-r , --ReportName |
Erforderlich. Name für die aktuelle Analyse. Der analysebericht, der generiert wird, wird durch diesen Namen identifiziert. |
-t , --type |
Standard: 0 Typ des SQL Server (0 = SqlServer, 1 = AzureSQLDB, 2 = Azure SQL Managed Instance). |
-h , --host |
Erforderlich. SQL Server-Hostname oder Instanzname. |
-e , --encrypt |
Standardwert: TRUE. Verschlüsseln der Verbindung mit sql Server-Instanz. |
--trust |
Standardwert: False. Vertrauen Des Serverzertifikats beim Herstellen einer Verbindung mit der SQL Server-Instanz. |
-m , --authmode |
Standard: 0 Authentifizierungsmodus (0 = Windows, 1 = SQL-Authentifizierung). |
-u , --username |
Benutzername für die Verbindung mit sql Server. |
--p |
Kennwort für die Verbindung mit sql Server. |
--ab |
Standardwert: False. Der Speicherort der Ablaufverfolgung A befindet sich im BLOB. Falls verwendet, muss auch angegeben werden --abu (Trace A Blob Url) |
--bb |
Standardwert: False. Der Speicherort der Ablaufverfolgung B befindet sich im BLOB. Falls verwendet, muss auch angegeben werden --bbu (Trace B Blob Url) |
--abu |
Blob-URL für eine Instanz mit SAS-Schlüssel. |
--bbu |
Blob-URL für B-Instanz mit SAS-Schlüssel. |
Siehe auch
- Weitere Informationen zur Verwendung von DEA finden Sie unter Übersicht über den Datenbankexperiments-Assistenten.