Eseguire Database Experimentation Assistant dal prompt dei comandi
Nota
Questo strumento è stato ritirato 15 dicembre 2024. Abbiamo smesso di supportare questo strumento per eventuali problemi che si verificano e non emetterà correzioni di bug o altri aggiornamenti.
Questo articolo descrive come acquisire una traccia in Database Experimentation Assistant (DEA) e quindi analizzare i risultati, tutti da un prompt dei comandi.
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, StartCapturee 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 <Authentication Mode> -u <user name> -p <password> -l <Location of Output Folder> -d <duration>
Per 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 file di traccia. |
-x , --format |
Obbligatorio. Formato della traccia (0 = Traccia, 1 = XEvents). |
-d , --duration |
Obbligatorio. Durata massima per l'acquisizione, espressa in minuti. |
-l , --location |
Obbligatorio. Percorso della cartella di output per l'archiviazione di file di traccia o XEvent nel computer host. |
-t , --type |
Impostazione predefinita: 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 |
Impostazione predefinita: 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 specificato, l'acquisizione viene avviata in tutti i database. |
-m , --authmode |
Impostazione predefinita: 0. Modalità di autenticazione (0 = Windows, 1 = Autenticazione SQL). |
-u , --username |
Nome utente per la connessione a SQL Server. |
-p , --password |
Password per la connessione a SQL Server. |
Riprodurre un'acquisizione del carico di lavoro
Se si usa Distributed Replay, seguire questa procedura.
Accedi al computer controller di "Riesecuzione distribuita".
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"
Avviare un'acquisizione di traccia nel computer di destinazione che esegue SQL Server usando StartReplayCaptureTrace.sql.
In SQL Server Management Studio (SSMS), aprite il percorso <Dea_InstallPath>\Scripts\StartReplayCaptureTrace.sql.
Eseguire
Set @durationInMins=0
in modo che l'acquisizione di traccia non venga interrotta automaticamente dopo un determinato periodo di tempo.Per impostare le dimensioni massime del file per ogni file di traccia, eseguire
Set @maxfilesize
. Le dimensioni consigliate sono 200 MB.Modificare
@Tracefile
per impostare un nome univoco per il file di traccia.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.
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,dreplaychild3,dreplaychild4"
- Per monitorare lo stato, eseguire il comando seguente:
DReplay status -f 1
- Per arrestare la riproduzione, ad esempio se si noterà che la percentuale di passaggio è inferiore al previsto, eseguire il comando seguente:
DReplay cancel
Interrompere l'acquisizione di traccia nell'istanza di SQL Server di destinazione.
Su SSMS, apri <Dea_InstallPath>\Scripts\StopCaptureTrace.sql.
Modificare
@Tracefile
in modo che corrisponda al percorso del file di traccia nel computer di destinazione che esegue SQL Server.Eseguire lo script nel computer di destinazione che esegue SQL Server.
Usare il Replay Integrato
Se si usa InBuilt Replay, non sarà necessario configurare Distributed Replay. La possibilità di usare InBuilt Replay al prompt dei comandi sta per arrivare. 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>
Per 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, quindi 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 |
Impostazione predefinita: 0. Tipo di SQL Server (0 = SqlServer, 1 = AzureSQLDB, 2 = Istanza gestita di SQL di Azure). |
-h , --host |
Obbligatorio. Nome host o istanza di Microsoft SQL Server. |
-e , --encrypt |
Impostazione predefinita: True. Crittografare la connessione all'istanza di SQL Server. |
--trust |
Impostazione predefinita: False. Considerare attendibile il certificato del server durante la connessione all'istanza di SQL Server. |
-m , --authmode |
Impostazione predefinita: 0. Modalità di autenticazione (0 = Windows, 1 = Autenticazione SQL). |
-u , --username |
Nome utente per la connessione a SQL Server. |
--p |
Password per la connessione a SQL Server. |
--ab |
Impostazione predefinita: False. La posizione di archiviazione della traccia A si trova nel blob. Se usato, deve specificare anche --abu (Trace A Blob Url) |
--bb |
Impostazione predefinita: False. La posizione di archiviazione della traccia B si trova nel blob. Se usato, deve specificare anche --bbu (Trace B Blob Url) |
--abu |
URL del blob per un'istanza A con chiave SAS (chiave di firma di accesso condiviso). |
--bbu |
URL Blob per l'istanza B con chiave SAS. |