Eseguire Database Experimentation Assistant al prompt dei comandi

In questo articolo viene descritto come acquisire una traccia in Database Experimentation Assistant (DEA) e come analizzare i risultati, tutto da un prompt dei comandi.

Nota

Per altre informazioni su ogni operazione DEA, eseguire il comando seguente:

Deacmd.exe -o <operation> --help

È necessario un nome di operazione. Le operazioni valide sono Analysis, StartCapture e StopCapture.

Avviare una nuova acquisizione del carico di lavoro usando il comando DEA

Per avviare una nuova acquisizione del carico di lavoro, eseguire il comando seguente al prompt dei comandi:

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>

Ad esempio:

Deacmd.exe -o StartCapture -n sql2008capture -x 0 -h localhost -f adventureworks -e --trust -m 0 -l c:\test  -d 60

Quando si avvia una nuova acquisizione del carico di lavoro con il comando Deacmd.exe, è possibile usare le opzioni seguenti:

Opzione Descrizione
-n, --name Obbligatorio. Nome del file di traccia.
-x, --format Obbligatorio. Formato della traccia (0 = Traccia, 1 = XEvents).
-d, --duration Obbligatorio. Durata massima dell'acquisizione, in minuti.
-l, --location Obbligatorio. Posizione della cartella di output per l'archiviazione di file di traccia o XEvent nel computer host.
-t, --type Predefinito: 0. Tipo di SQL Server (0 = SqlServer, 1 = AzureSQLDB, 2 = Istanza gestita di SQL di Azure).
-h, --host Obbligatorio. Nome host o nome dell'istanza di SQL Server per avviare l'acquisizione.
-e, --encrypt Impostazione predefinita: true Crittografare la connessione all'istanza di SQL Server.
--trust Valore predefinito: False. Considerare attendibile il certificato del server durante la connessione all'istanza di SQL Server.
-f, --databasename Nome del database per filtrare le tracce; se non viene specificato, l'acquisizione viene avviata in tutti i database.
-m, --authmode Predefinito: 0. Modalità di autenticazione (0 = Windows, 1 = autenticazione SQL).
-u, --username Nome utente per la connessione a SQL Server.
-p, --password Password usata per la connessione a SQL Server.

Riprodurre un'acquisizione del carico di lavoro

Se si usa Riesecuzione distribuita, seguire questa procedura.

  1. Accedere al computer del controller di Riesecuzione distribuita.

  2. Per convertire la traccia del carico di lavoro acquisita usando il comando DEA in un file IRF, eseguire il comando seguente:

    DReplay preprocess -m "dreplaycontroller" -i "Path to first trace file" -d "<Folder path on controller>\IrfFolder"
    
  3. Avviare un'acquisizione di traccia nel computer di destinazione che esegue SQL Server usando StartReplayCaptureTrace.sql.

    a. In SQL Server Management Studio (SSMS) aprire <Dea_InstallPath>\Scripts\StartReplayCaptureTrace.sql.

    b. Eseguire Set @durationInMins=0 in modo che l'acquisizione di traccia non venga interrotta automaticamente dopo un'ora specificata.

    c. Per impostare le dimensioni massime del file per ogni file di traccia, eseguire Set @maxfilesize. La dimensione consigliata è 200 MB.

    d. Modificare @Tracefile per impostare un nome univoco per il file di traccia.

    e. Modificare @dbname per specificare un nome di database se il carico di lavoro deve essere acquisito solo in un database specifico. Per impostazione predefinita, viene acquisito il carico di lavoro nell'intero server.

  4. Per riprodurre il file IRF nell'istanza di SQL Server di destinazione, eseguire il comando seguente:

    DReplay replay -m "dreplaycontroller" -d "<Folder Path on Dreplay Controller>\IrfFolder" -o -s "SQL2016Target" -w "dreplaychild1,dreplaychild2,dreplaycild3,dreplaychild4"
    

    a. Per monitorare lo stato, eseguire il comando seguente.

    DReplay status -f 1
    

    b. Per arrestare la riproduzione, ad esempio se si noterà che la percentuale di passaggio è inferiore al previsto, eseguire il comando seguente:

    DReplay cancel
    
  5. Arrestare l'acquisizione di traccia nell'istanza di SQL Server di destinazione.

  6. In SSMS aprire <Dea_InstallPath>\Scripts\StopCaptureTrace.sql.

  7. Modificare @Tracefile in modo che corrisponda al percorso del file di traccia nel computer di destinazione che esegue SQL Server.

  8. Eseguire lo script nel computer di destinazione che esegue SQL Server.

Uso di InBuilt Replay

Se si usa InBuilt Replay, non sarà necessario configurare Riesecuzione distribuita. La possibilità di usare InBuilt Replay al prompt dei comandi è in corso. Attualmente, è possibile usare l'interfaccia utente grafica per eseguire la riproduzione usando InBuilt Replay.

Analizzare le tracce usando il comando DEA

Per avviare una nuova analisi di traccia, eseguire il comando seguente:

Deacmd.exe -o analysis -a <Target1 trace filepath> -b <Target2 trace filepath> -r reportname -h <SQLserverInstance> -e <encryptconnection> -u <username>

Ad esempio:

Deacmd.exe -o analysis -a C:\Trace\SQL2008Source\Trace.trc -b C:\ Trace\SQL2014Trace\Trace.trc -r upgrade20082014 -h localhost -e

Per visualizzare i report di analisi di questi file di traccia, è necessario usare l'interfaccia utente grafica per visualizzare grafici e metriche organizzate. Tuttavia, il database di analisi viene scritto nell'istanza di SQL Server specificata, quindi è anche possibile eseguire direttamente query sulle tabelle di analisi generate.

Quando si analizzano tracce usando il comando DEA, è possibile usare le opzioni seguenti:

Opzione Descrizione
-a, --traceA Obbligatorio. Percorso del file di evento per l'istanza A. Esempio: C:\traces\Sql2008trace.trc. Se è presente un batch di file, selezionare il primo file e DEA controlla automaticamente la presenza di file di rollover. Se i file si trovano nel BLOB, specificare il percorso della cartella in cui si desidera archiviare i file dell'evento in locale. Esempio: C:\traces\
-b, --traceB Obbligatorio. Percorso del file dell'evento per l'istanza B. Esempio: C:\traces\Sql2014trace.trc. Se è presente un batch di file, selezionare il primo file e DEA controlla automaticamente la presenza di file di rollover. Se i file si trovano nel BLOB, specificare il percorso della cartella in cui si desidera archiviare i file dell'evento in locale. Esempio: C:\traces\
-r, --ReportName Obbligatorio. Nome per l'analisi corrente. Il report di analisi generato viene identificato da questo nome.
-t, --type Predefinito: 0. Tipo di SQL Server (0 = SqlServer, 1 = AzureSQLDB, 2 = Istanza gestita di SQL di Azure).
-h, --host Obbligatorio. Nome host o dell'istanza di SQL Server.
-e, --encrypt Impostazione predefinita: true Crittografare la connessione all'istanza di SQL Server.
--trust Valore predefinito: False. Considerare attendibile il certificato del server durante la connessione all'istanza di SQL Server.
-m, --authmode Predefinito: 0. Modalità di autenticazione (0 = Windows, 1 = autenticazione SQL).
-u, --username Nome utente per la connessione a SQL Server.
--p Password usata per la connessione a SQL Server.
--ab Valore predefinito: False. La posizione di archiviazione della traccia A si trova nel BLOB. Se usato, deve anche specificare --abu (Trace A Blob Url)
--bb Valore predefinito: False. La posizione di archiviazione della traccia B si trova nel BLOB. Se usato, deve anche specificare --bbu (Trace B Blob Url)
--abu URL BLOB per un'istanza A con chiave SAS.
--bbu URL BLOB per un'istanza B con chiave SAS.

Vedi anche