Ausführen des Datenbankexperiments-Assistenten an einer Eingabeaufforderung
Anmerkung
Dieses Tool wurde am 15. Dezember 2024eingestellt. Wir haben dieses Tool für alle auftretenden Probleme nicht mehr unterstützt, und es werden keine Fehlerkorrekturen oder weitere Updates ausgeführt.
In diesem Artikel wird beschrieben, wie Sie ein Protokoll im Assistenten für Datenbankexperimente (DEA) erfassen und anschließend die Ergebnisse über die Befehlszeile untersuchen.
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, StartCaptureund StopCapture.
Eine neue Workload-Erfassung mithilfe des DEA-Befehls starten
Um eine neue Workload-Erfassung 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 <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. Name der Ablaufverfolgungsdatei. |
-x , --format |
Erforderlich. Format der Nachverfolgung (0 = Nachverfolgung, 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 |
Standardeinstellung: Wahr. Verschlüsseln der Verbindung mit sql Server-Instanz. |
--trust |
Standardmäßig: Falsch. Vertraue dem Serverzertifikat beim Verbinden mit der SQL Server-Instanz. |
-f , --databasename |
Der Name der Datenbank, um Ihre Ablaufverfolgungen zu filtern; wenn kein Name angegeben ist, wird die Erfassung bei allen Datenbanken gestartet. |
-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, die Sie mit dem DEA-Befehl erfasst haben, in eine IRF-Datei zu konvertieren:
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.sqlausgeführt wird.
Öffnen Sie in SQL Server Management Studio (SSMS) <Dea_InstallPath>\Scripts\StartReplayCaptureTrace.sql.
Führen Sie
Set @durationInMins=0
aus, damit die Ablaufverfolgungserfassung nach einer bestimmten Zeit nicht automatisch beendet wird.Führen Sie
Set @maxfilesize
aus, um die maximale Dateigröße pro Trace-Datei festzulegen. Die empfohlene Größe beträgt 200 MB.Bearbeiten Sie
@Tracefile
, um einen eindeutigen Namen für Ihre Protokolldatei festzulegen.Bearbeiten Sie
@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,dreplaychild3,dreplaychild4"
- Führen Sie den folgenden Befehl aus, um den Status zu überwachen:
DReplay status -f 1
- 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 Sie
@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 Sie die integrierte Wiedergabe
Wenn Sie InBuilt Replay verwenden, müssen Sie keine verteilte Wiedergabe einrichten. Die Möglichkeit zur Verwendung von InBuilt Replay an der Eingabeaufforderung ist auf dem Weg. Derzeit können Sie unsere GUI verwenden, um die Wiedergabe mit InBuilt Replay auszuführen.
Traces mit dem DEA-Befehl analysieren
Führen Sie den folgenden Befehl aus, um eine neue Tracing-Analyse zu starten.
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 Protokolldateien 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 |
Vorgabe: 0. Typ des SQL Server (0 = SqlServer, 1 = AzureSQLDB, 2 = Azure SQL Managed Instance). |
-h , --host |
Erforderlich. SQL Server-Hostname oder Instanzname. |
-e , --encrypt |
Vorgabe: True. Verschlüsseln der Verbindung mit sql Server-Instanz. |
--trust |
Voreinstellung: Falsch. 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 |
Standard: Falsch. Der Speicherort der Ablaufverfolgung A befindet sich im BLOB. Wenn es verwendet wird, muss auch --abu (Trace A Blob Url) angegeben werden. |
--bb |
Standard: Falsch. Der Speicherort der Ablaufverfolgung B befindet sich im Blob. Wenn es verwendet wird, muss auch --bbu (Trace B Blob Url) angegeben werden. |
--abu |
Blob-URL für eine Instanz mit SAS-Schlüssel. |
--bbu |
Blob-URL für B-Instanz mit SAS-Schlüssel. |