Freigeben über


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

  1. Melden Sie sich am Distributed Replay-Controller-Computer an.

  2. 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"
    
  3. 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.

  4. 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
    
  5. Stoppen 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 Bereitstellungszielcomputer, auf dem SQL Server ausgeführt wird, zu entsprechen.

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