Ausführen des Assistenten für Datenbankexperimente durch eine Eingabeaufforderung
Hinweis
Dieses Tool wird am 15. Dezember 2024 ausgemustert. Wir werden dieses Tool für alle auftretenden Probleme in Zukunft nicht mehr unterstützen und keine Programmfehlerbehebung oder weitere Updates herausgeben.
In diesem Artikel wird beschrieben, wie Sie aus einer Eingabeaufforderung eine Ablaufverfolgung im Assistenten für Datenbankexperimente (DEA) erfassen und dann die Ergebnisse analysieren können.
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 Analyse, ErfassungStarten und ErfassungStoppen.
Starten einer neuen Workloaderfassung mithilfe des DEA-Befehls
Um eine neue Workloaderfassung zu starten, führen Sie in 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 <Authentication Mode> -u <user name> -p <password> -l <Location of Output Folder> -d <duration>
Zum 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 Befehl Deacmd.exe
starten, können Sie die folgenden Optionen verwenden:
Option | Beschreibung |
---|---|
-n , --name |
Erforderlich. Ablaufverfolgungsdateiname. |
-x , --format |
Erforderlich. Format der Ablaufverfolgung (0 = Ablaufverfolgung, 1 = XEvents). |
-d , --duration |
Erforderlich. Maximale Dauer für die Erfassung, in Minuten. |
-l , --location |
Erforderlich. Standort des Ausgabeordners zum Speichern von Ablaufverfolgungs- oder XEvent-Dateien auf dem Hostcomputer. |
-t , --type |
Standard: 0 Typ des SQL Servers (0 = SqlServer, 1 = AzureSQLDB, 2 = Azure SQL Managed Instance). |
-h , --host |
Erforderlich. SQL Server-Hostname oder -Instanzname zum Starten der Erfassung. |
-e , --encrypt |
Standard: True. Verschlüsseln Sie die Verbindung zur SQL Server-Instanz. |
--trust |
Standardwert: False. Vertrauen Sie dem Serverzertifikat beim Herstellen einer Verbindung zur SQL Server-Instanz. |
-f , --databasename |
Der Name der Datenbank zum Filtern ihrer Ablaufverfolgungen; wenn nicht angegeben, startet die Erfassung auf allen Datenbanken. |
-m , --authmode |
Standard: 0 Authentifizierungsmodus (0 = Windows, 1 = Sql-Authentifizierung). |
-u , --username |
Benutzername zum Herstellen der Verbindung zum SQL Server. |
-p , --password |
Passwort zum Herstellen der Verbindung zum SQL Server. |
Wiedergeben einer Workloaderfassung
Wenn Sie Distributed Replay verwenden, führen Sie die folgenden Schritte aus.
Melden Sie sich am Distributed Replay-Controller-Computer an.
Um die Workloadablaufverfolgung, die Sie mithilfe des DEA-Befehls erfasst haben, in eine IRF-Datei zu konvertieren, führen Sie den folgenden Befehl aus:
DReplay preprocess -m "dreplaycontroller" -i "Path to first trace file" -d "<Folder path on controller>\IrfFolder"
Starten Sie mit StartReplayCaptureTrace.sql eine Ablaufverfolgungserfassung auf dem Bereitstellungszielcomputer, auf dem SQL Server ausgeführt wird.
a. Öffnen Sie im SQL Server Management Studio (SSMS) <Dea_InstallPath>\Scripts\StartReplayCaptureTrace.sql.
b. Führen Sie
Set @durationInMins=0
aus, damit die Ablaufverfolgungserfassung nicht nach einer bestimmten Zeit automatisch beendet wird.c. Um die maximale Dateigröße pro Ablaufverfolgungsdatei festzulegen, führen Sie
Set @maxfilesize
aus. Die empfohlene Größe beträgt 200 MB.d. Bearbeiten Sie
@Tracefile
, um einen eindeutigen Namen für Ihre Ablaufverfolgungsdatei festzulegen.e. Bearbeiten Sie
@dbname
, um einen Datenbanknamen anzugeben, wenn die Workload nur in einer bestimmten Datenbank erfasst werden muss. Standardmäßig wird die Workload auf dem gesamten Server erfasst.Um die IRF-Datei für die SQL Server-Zielinstanz wiederzugeben, führen Sie den folgenden Befehl aus:
DReplay replay -m "dreplaycontroller" -d "<Folder Path on Dreplay Controller>\IrfFolder" -o -s "SQL2016Target" -w "dreplaychild1,dreplaychild2,dreplaycild3,dreplaychild4"
a. Um den Status zu überwachen, führen Sie den folgenden Befehl aus:
DReplay status -f 1
b. Um die Wiedergabe zu stoppen, z. B. wenn Sie sehen, dass der Weitergabeprozentsatz niedriger als erwartet ist, führen Sie den folgenden Befehl aus:
DReplay cancel
Stoppen Sie die Ablaufverfolgungserfassung in der SQL Server-Zielinstanz.
Öffnen Sie in SSMS <Dea_InstallPath>\Scripts\StopCaptureTrace.sql.
Bearbeiten Sie
@Tracefile
, um dem Pfad der Ablaufverfolgungsdatei auf dem Bereitstellungszielcomputer, auf dem SQL Server ausgeführt wird, zu entsprechen.Führen Sie das Skript für den Bereitstellungszielcomputer aus, auf dem SQL Server ausgeführt wird.
Verwenden von InBuilt Replay
Wenn Sie InBuilt Replay verwenden, müssen Sie Distributed Replay nicht einrichten. Die Möglichkeit zur Verwendung von InBuilt Replay mithilfe der Eingabeaufforderung wird derzeit entwickelt. Aktuell können Sie unsere GUI verwenden, um die Wiedergabe mit InBuilt Replay auszuführen.
Analysieren von Ablaufverfolgungen mithilfe des DEA-Befehls
Um eine neue Ablaufverfolgungsanalyse zu starten, führen Sie den folgenden Befehl aus:
Deacmd.exe -o analysis -a <Target1 trace filepath> -b <Target2 trace filepath> -r reportname -h <SQLserverInstance> -e <encryptconnection> -u <username>
Zum 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 zur Anzeige von Diagrammen und organisierten Metriken verwenden. 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 einen Batch an Dateien gibt, 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 einen Batch an Dateien gibt, 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 Servers (0 = SqlServer, 1 = AzureSQLDB, 2 = Azure SQL Managed Instance). |
-h , --host |
Erforderlich. Hostname oder Instanzname des SQL Servers. |
-e , --encrypt |
Standard: True. Verschlüsseln Sie die Verbindung zur SQL Server-Instanz. |
--trust |
Standardwert: False. Vertrauen Sie dem Serverzertifikat beim Herstellen einer Verbindung zur SQL Server-Instanz. |
-m , --authmode |
Standard: 0 Authentifizierungsmodus (0 = Windows, 1 = Sql-Authentifizierung). |
-u , --username |
Benutzername zum Herstellen der Verbindung zum SQL Server. |
--p |
Passwort zum Herstellen der Verbindung zum SQL Server. |
--ab |
Standardwert: False. Der Speicherort der Ablaufverfolgung A befindet sich im Blob. Falls verwendet, muss --abu (Trace A Blob Url) auch angegeben werden |
--bb |
Standardwert: False. Der Speicherort der Ablaufverfolgung B befindet sich im Blob. Falls verwendet, muss --bbu (Trace B Blob Url) auch angegeben werden |
--abu |
Blob-URL für A-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 Assistenten für Datenbankexperimente.