Freigeben über


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.

  1. Melden Sie sich beim Computer des verteilten Wiedergabecontrollers an.

  2. 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"
    
  3. Starten Sie eine Ablaufverfolgungserfassung auf dem Zielcomputer, auf dem SQL Server mit StartReplayCaptureTrace.sqlausgeführt wird.

    1. Öffnen Sie in SQL Server Management Studio (SSMS) <Dea_InstallPath>\Scripts\StartReplayCaptureTrace.sql.

    2. Führen Sie Set @durationInMins=0 aus, damit die Ablaufverfolgungserfassung nach einer bestimmten Zeit nicht automatisch beendet wird.

    3. Führen Sie Set @maxfilesizeaus, um die maximale Dateigröße pro Trace-Datei festzulegen. Die empfohlene Größe beträgt 200 MB.

    4. Bearbeiten Sie @Tracefile, um einen eindeutigen Namen für Ihre Protokolldatei festzulegen.

    5. 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.

  4. 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"
    
    1. Führen Sie den folgenden Befehl aus, um den Status zu überwachen:
    DReplay status -f 1
    
    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
    
  5. Beenden Sie die Ablaufverfolgungserfassung in der SQL Server-Zielinstanz.

  6. Öffnen Sie in SSMS <Dea_InstallPath>\Scripts\StopCaptureTrace.sql.

  7. Bearbeiten Sie @Tracefile, um dem Pfad der Ablaufverfolgungsdatei auf dem Zielcomputer zu entsprechen, auf dem SQL Server ausgeführt wird.

  8. 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.