Condividi tramite


Catturare una traccia in Database Experimentation Assistant

Nota

Il 15 dicembre 2024, questo strumento è stato ritirato . Abbiamo smesso di supportare questo strumento per eventuali problemi che si verificano e non emetterà correzioni di bug o altri aggiornamenti.

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

La memorizzazione nella cache delle query in SQL Server potrebbe influire sui risultati della valutazione. È consigliabile riavviare il servizio SQL Server (MSSQLSERVER) nell'applicazione servizi per migliorare la coerenza dei risultati della valutazione.

Configurare un'acquisizione di traccia

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

    Screenshot della creazione di un'acquisizione in DEA.

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

    • Nome acquisizione: Inserisci un nome per il file di traccia della tua acquisizione.

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

    • Durata: selezionare la durata (in minuti) per cui si desidera eseguire l'acquisizione della traccia.

    • Posizione di 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, potrebbe essere necessario disporre 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. In Cattura dettagliimmettere 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: per il tipo di autenticazione selezionare Windows.
    • Nome database: immettere un nome per un database per avviare una traccia del database. Se non si specifica un database, la traccia viene acquisita in tutti i database del server.
  5. Seleziona o deseleziona le caselle di controllo Encrypt connection e Trust server certificate in base al tuo scenario.

    Screenshot della pagina Nuova acquisizione.

Avviare l'acquisizione di 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 voci non valide vengono evidenziate in rosso. Se si verificano errori, correggere eventuali voci necessarie e quindi selezionare di nuovo Avvia.

    Mentre l'acquisizione della traccia è in esecuzione, in Dettagli dell'acquisizione, viene visualizzato lo stato e l'avanzamento del processo di acquisizione della traccia.

    Screenshot dei progressi dell'acquisizione del monitor.

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

    Screenshot dell'acquisizione di traccia completata.

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

Domande frequenti sull'acquisizione delle tracce

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

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 Dati di testo (1) Dati binari (2) ID database (3) Nome host (8) Nome applicazione (10) Nome di login (11) SPID (12) Ora di inizio (14) Ora di fine (15) Nome database (35) Sequenza di eventi (51) IsSystem (60)
RPC:Completed (10) No
RPC:Starting (11) No No
parametro di output RPC (100) No No
SQL:BatchCompleted (12) No
SQL:BatchStarting (13) No No
Accesso verifica (14) No
Audit Logout (15) No
ExistingConnection (17) No
CursorOpen (53) No No
CursorPrepare (70) No No
Preparare SQL (71) No No No
Exec Prepared SQL (72) No No No
CursorExecute (74) No No
CursorUnprepare (77) No No
CursorClose (78) No No

Si verifica un effetto sulle prestazioni nel server di produzione quando è in esecuzione l'acquisizione di traccia?

Sì, si verifica un effetto minimo sulle prestazioni durante la raccolta di tracce. Nei test sono stati rilevati circa 3% pressione di memoria.

Quale tipo di autorizzazioni sono necessarie per la raccolta di tracce in un ambiente di produzione?

L'utente di Windows che esegue l'operazione di traccia nell'applicazione DEA deve disporre dei diritti sysadmin 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.

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

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

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

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

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 in Target 1 e Target 2 è riprodotta. Se lo stato del database non è uguale, i risultati della sperimentazione sono asimmetrici.

È possibile raccogliere XEvents invece di tracce e riprodurre gli XEvents?

Sì. DEA è compatibile con 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 è 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 ha le autorizzazioni elencate nelle FAQ sulla riproduzione .

  • Il nome della traccia non segue la convenzione di rollover standard (Capture_1). Invece, prova nomi di traccia come 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 in SQL Server di destinazione, verificare se si dispone 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 sysadmin.
Impossibile avviare la traccia in SQL Server di destinazione, verificare se si dispone 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 si vedono altri errori etichettati Codice errore SQL, consultare eventi ed errori del motore di database per le descrizioni dettagliate.