Acquisire una traccia in Database Experimentation Assistant

È possibile usare Database Experimentation Assistant (DEA) per creare un file di traccia con un log di eventi del server acquisiti. Un evento del server acquisito è un evento che si verifica in un server specifico durante un periodo di tempo specifico. Un'acquisizione di traccia deve essere eseguita una sola volta per ogni server.

Prima di avviare un'acquisizione di traccia, assicurarsi di eseguire il backup di tutti i database di destinazione.

Il caching delle query in SQL Server può influire sui risultati della valutazione. È consigliabile riavviare il servizio SQL Server (MSSQLSERVER) nell'applicazione di servizio per migliorare la coerenza nei risultati della valutazione.

Configurare una nuova acquisizione

  1. In DEA, sulla barra di spostamento a sinistra selezionare l'icona della fotocamera e quindi nella pagina Tutte le acquisizioni selezionare Nuova acquisizione.

    Create a capture in DEA

  2. Nella pagina Nuova acquisizione, in Acquisisci dettagli immettere o selezionare le informazioni seguenti:

    • Nome acquisizione: immettere un nome per il file di traccia per l'acquisizione.

    • Formato: specificare il formato (Trace o XEvents) per l'acquisizione.

    • Durata: selezionare l'intervallo di tempo (in minuti) in cui si desidera eseguire l'acquisizione di traccia.

    • Posizione acquisizione: selezionare il percorso di destinazione per il file di traccia.

      Nota

      Il percorso del file di traccia deve trovarsi nel computer che esegue SQL Server. Se il servizio SQL Server non è impostato per un account specifico, il servizio potrebbe aver bisogno delle autorizzazioni di scrittura per la cartella specificata per la scrittura del file di traccia.

  3. Verificare di aver eseguito un backup selezionando la casella di controllo Sì, ho eseguito manualmente il backup.

  4. Nella pagina Dettagli acquisizione, immettere o selezionare le informazioni seguenti:

    • Tipo di server: specificare il tipo di SQL Server (SqlServer, AzureSqlDb, AzureSqlManagedInstance).
    • Nome server: specificare il nome del server o l'indirizzo IP di SQL Server.
    • Tipo di autenticazione: selezionare Windows come tipo di autenticazione.
    • Nome database: immettere un nome per un database in cui avviare una traccia del database. Se non si specifica un database, la traccia viene acquisita in tutti i database del server.
  5. Selezionare o deselezionare le caselle di controllo Crittografia connessione e Considera attendibile il certificato del server in base al proprio scenario.

    New Capture page

Avviare l'acquisizione della traccia

  1. Dopo aver immesso o selezionato le informazioni necessarie, selezionare Avvia per avviare l'acquisizione della traccia.

    Se le informazioni immesse sono valide, viene avviato il processo di acquisizione della traccia. In caso contrario, le caselle di testo con le voci non valide vengono evidenziate in rosso. Se si verificano degli errori, correggere le voci necessarie e quindi selezionare di nuovo Avvia.

    Durante l'esecuzione dell'acquisizione di traccia, in Dettagli acquisizione viene visualizzato lo stato e il progresso del processo di acquisizione della traccia.

    Monitor capture progress

  2. Al termine dell'esecuzione dell'acquisizione di traccia, il nuovo file di traccia (con estensione trc) viene salvato nel percorso di acquisizione specifico durante la configurazione iniziale.

    Completed trace capture

    Il file di traccia include i risultati della traccia dell'attività di un database di SQL Server. I file con estensione trc sono progettati per fornire altre informazioni sugli errori rilevati e riportati da SQL Server.

Domande frequenti relative all'acquisizione della traccia

Di seguito sono riportate alcune domande frequenti relative all'acquisizione di tracce in DEA.

D: Quali eventi vengono acquisiti quando si esegue un'acquisizione di traccia in un database di produzione?

Nella tabella seguente sono elencati gli eventi e i dati di colonna corrispondenti raccolti da DEA per le tracce:

Nome evento Testo dati (1) Dati binari (2) ID database (3) Nome host (8) Nome applicazione (10) Nome di accesso (11) SPID (12) Ora inizio (14) Ora fine (15) Nome database (35) Sequenza di eventi (51) IsSystem (60)
RPC:Completed (10) * * * * * * * * * * *
RPC:Starting (11) * * * * * * * * * *
RPC Output Parameter (100) * * * * * * * * * *
SQL:BatchCompleted (12) * * * * * * * * * * *
SQL:BatchStarting (13) * * * * * * * * * *
Audit Login (14) * * * * * * * * * * *
Audit Logout (15) * * * * * * * * * * *
ExistingConnection (17) * * * * * * * * * * *
CursorOpen (53) * * * * * * * * * *
CursorPrepare (70) * * * * * * * * * *
Prepare SQL (71) * * * * * * * * *
Exec Prepared SQL (72) * * * * * * * * *
CursorExecute (74) * * * * * * * * * *
CursorUnprepare (77) * * * * * * * * * *
CursorClose (78) * * * * * * * * * *

D: Esiste un effetto sulle prestazioni sul server di produzione quando è in esecuzione l'acquisizione di traccia?

Sì, durante la raccolta di tracce si ha un effetto minimo sulle prestazioni. Nei nostri test è stato rilevato circa un 3% di utilizzo elevato di memoria.

D: Quale tipo di autorizzazioni sono necessarie per l'acquisizione di tracce in un carico di lavoro di produzione?

  • L'utente di Windows che esegue l'operazione di traccia nell'applicazione DEA deve disporre dei diritti di amministratore di sistema nel computer che esegue SQL Server.
  • L'account del servizio usato nel computer che esegue SQL Server deve avere accesso in scrittura al percorso del file di traccia specificato.

D: È possibile acquisire tracce per l'intero server o solo in un singolo database?

È possibile usare DEA per acquisire tracce per tutti i database nel server o per un singolo database.

D: È stato configurato un server collegato nell'ambiente di produzione. Le query sono visualizzate nelle tracce?

Se si esegue un'acquisizione di traccia per l'intero server, la traccia acquisisce tutte le query, incluse quelle del server collegato. Per eseguire un'acquisizione di traccia per l'intero server, lasciare vuota la casella Nome database in Nuova acquisizione.

D: Qual è il tempo minimo consigliato per le tracce del carico di lavoro di produzione?

È consigliabile scegliere un'ora che rappresenti meglio l'intero carico di lavoro. In questo modo, l'analisi viene eseguita su tutte le query nel carico di lavoro.

D: Quanto è importante eseguire un backup del database prima di avviare un'acquisizione di traccia?

Prima di avviare un'acquisizione di traccia, assicurarsi di eseguire il backup di tutti i database di destinazione. La traccia acquisita nella destinazione 1 e nella destinazione 2 viene riprodotta. Se lo stato del database non è uguale, i risultati della sperimentazione sono asimmetrici.

D: È possibile raccogliere eventi XEvents invece di tracce e riprodurre questi XEvents?

Sì. DEA supporta XEvents. Scaricare la versione più recente di DEA e provare.

Risolvere i problemi relativi alle acquisizioni di traccia

Se viene visualizzato un errore quando si esegue un'acquisizione di traccia, verificare che:

  • Il nome del computer che esegue SQL Server sia valido. Per confermare, provare a connettersi al computer che esegue SQL Server usando SQL Server Management Studio (SSMS).
  • La configurazione del firewall non blocca le connessioni al computer che esegue SQL Server.
  • L'utente dispone delle autorizzazioni elencate nelle domande frequenti sulla riproduzione.
  • Il nome della traccia non segue la convenzione di rollover standard (Capture_1). Provare invece con i nomi di traccia, ad esempio Capture_1A o Capture1.

Di seguito sono riportati alcuni possibili errori che potrebbero essere visualizzati e le soluzioni per risolverli:

Possibili errori Soluzione
Impossibile avviare la traccia nell’SQL Server di destinazione, verificare di disporre delle autorizzazioni necessarie e che l'account SQL Server abbia accesso in scrittura al percorso del file di traccia specificato Codice errore SQL (53) L'utente che esegue lo strumento DEA deve avere accesso al computer che esegue SQL Server. All'utente deve essere assegnato il ruolo di amministratore di sistema.
Impossibile avviare la traccia nell'SQL Server di destinazione, verificare di disporre delle autorizzazioni necessarie e che l'account SQL Server abbia accesso in scrittura al percorso del file di traccia specificato Codice errore SQL (19062) Il percorso di traccia specificato potrebbe non esistere o la cartella non dispone delle autorizzazioni di scrittura per l'account in cui sono in esecuzione i servizi di SQL Server, ad esempio NETWORK SERVICE. Il percorso deve esistere e deve disporre delle autorizzazioni necessarie per l'avvio della traccia.
Una traccia DEA è attualmente in esecuzione nel server di destinazione. Una traccia attiva è già in esecuzione nel server di destinazione. Non è possibile avviare una nuova traccia quando è già in esecuzione una traccia a livello di server.
Impossibile aprire il database richiesto per l'acquisizione della traccia. Questo errore potrebbe essere causato da un nome di database non corretto. Il database specificato non esiste o non è accessibile all'utente corrente. Usare il nome del database corretto.

Se vengono visualizzati altri errori con etichetta Codice errore SQL, vedere Errori del motore di database per le descrizioni dettagliate.

Vedi anche