Freigeben über


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.

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

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

  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,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
    
  5. Beenden Sie die Ablaufverfolgungserfassung in der SQL Server-Zielinstanz.

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

  7. Bearbeiten, @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 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