Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Prima di utilizzare Event Tracing for Windows (ETW) come destinazione, è consigliabile acquisire familiarità con tale funzionalità. Il tracciamento ETW viene utilizzato insieme a Extended Events oppure come consumer di eventi di Extended Events. I collegamenti esterni seguenti rappresentano un punto iniziale per ottenere informazioni di base su ETW:
Improve Debugging And Performance Tuning With ETW (Migliorare il debug e l'ottimizzazione delle prestazioni con ETW)
Il target ETW è un target di tipo singleton, sebbene possa essere aggiunto a molte sessioni. Se un evento viene generato su più sessioni, sarà propagato alla destinazione ETW una sola volta per ciascuna occorrenza dell'evento. Il motore di Eventi estesi è limitato a un'unica istanza per processo.
Importante
Affinché la destinazione ETW funzioni, l'account di avvio del servizio SQL Server deve essere membro del gruppo Performance Log Users.
La configurazione degli eventi presente in una sessione ETW è controllata dal processo che ospita il motore di Eventi estesi. Il motore controlla gli eventi da generare e le condizioni che devono essere soddisfatte perché l'evento si verifichi.
Dopo l'associazione a una sessione di Eventi estesi, che collega il target ETW per la prima volta durante il ciclo di vita di un processo, il target ETW apre una singola sessione ETW sul provider SQL Server. Se una sessione ETW esiste già, la destinazione ETW ottiene un riferimento alla sessione esistente. Questa sessione ETW è condivisa in tutte le istanze SQL Server su un dato computer. Questa sessione ETW riceve tutti gli eventi dalle sessioni che hanno come destinazione ETW.
Poiché ETW ha bisogno che i provider siano abilitati per utilizzare gli eventi e trasmetterli verso il basso a ETW, tutti i pacchetti di Eventi estesi sono attivati nella sessione. Quando viene generato un evento, la destinazione ETW invia l'evento alla sessione in cui è abilitato il provider dell'evento.
La destinazione ETW supporta la pubblicazione sincrona di eventi sul thread che genera l'evento. Tuttavia, la destinazione ETW non supporta la pubblicazione asincrona di eventi.
La destinazione ETW non supporta il controllo da controller ETW esterni, ad esempio Logman.exe. Per produrre tracce ETW, è necessario creare una sessione di eventi con il target ETW. Per altre informazioni, vedere CREATE EVENT SESSION (Transact-SQL).
Nota
Abilitando la destinazione ETW, viene creata una sessione ETW denominata XE_DEFAULT_ETW_SESSION. Se esiste già una sessione con il nome XE_DEFAULT_ETW_SESSION, viene utilizzata senza la modifica di alcuna proprietà della sessione esistente. La sessione XE_DEFAULT_ETW_SESSION viene condivisa tra tutte le istanze di SQL Server. Dopo aver avviato XE_DEFAULT_ETW_SESSION, è necessario arrestarla tramite un controller ETW, quale lo strumento Logman. Ad esempio, è possibile eseguire il comando seguente al prompt dei comandi: logman stop XE_DEFAULT_ETW_SESSION -ets.
Nella tabella seguente vengono descritte le opzioni disponibili per la configurazione della destinazione ETW.
| Opzione | Valori consentiti | Descrizione |
|---|---|---|
default_xe_session_name |
Qualsiasi stringa contenente fino a 256 caratteri. Questo valore è facoltativo. | Nome della sessione di Eventi estesi. Per impostazione predefinita, si tratta di XE_DEFAULT_ETW_SESSION. |
default_etw_session_logfile_path |
Qualsiasi stringa contenente fino a 256 caratteri. Questo valore è facoltativo. | Percorso del file di log per la sessione di Eventi estesi. Per impostazione predefinita, tale valore è %TEMP%\XEEtw.etl. |
default_etw_session_logfile_size_mb |
Qualsiasi valore intero senza segno. Questo valore è facoltativo. | Dimensioni del file di log, in megabyte (MB), per la sessione di Eventi estesi. Il valore predefinito è 20 MB. |
default_etw_session_buffer_size_kb |
Qualsiasi valore intero senza segno. Questo valore è facoltativo. | Dimensioni del buffer in memoria, in kilobyte (MB), per la sessione di Eventi estesi. Il valore predefinito è 128 MB. |
retries |
Qualsiasi valore intero senza segno. | Numero di volte in cui riprovare a pubblicare l'evento nel sottosistema ETW prima di scartare l'evento. Il valore predefinito è 0. |
La configurazione di queste impostazioni è facoltativa. La destinazione ETW utilizza valori predefiniti per queste impostazioni.
La destinazione ETW è responsabile di:
Creazione della sessione ETW predefinita.
Registrazione di tutti i pacchetti di Eventi estesi con ETW. Ciò assicura che gli eventi non siano eliminati da ETW.
Gestione del flusso di eventi a ETW. La destinazione ETW crea un evento ETW con i dati di Eventi estesi e lo invia alla sessione ETW appropriata. Se l'evento è più grande della dimensione del buffer o se i dati non possono adattarsi a un evento ETW, ETW suddivide l'evento in frammenti.
Mantenere sempre abilitati i pacchetti di Extended Events.
I seguenti percorsi predefiniti dei file sono utilizzati da ETW:
Il percorso del file di output per ETW è %TEMP%\XEEtw.etl.
Importante
Impossibile modificare il percorso del file dopo l'inizio della prima sessione.
I file Managed Object Format (MOF) si trovano in <percorso di installazione>\Microsoft SQL Server\Shared. Per altre informazioni, vedere Managed Object Format (MOF) su MSDN.
Aggiungi il target a una sessione
Per aggiungere la destinazione ETW a una sessione di Eventi estesi, è necessario includere l'istruzione seguente quando si crea o modifica una sessione eventi:
ADD TARGET package0.etw_classic_sync_target
Per altre informazioni su un esempio completo che mostra come usare la destinazione ETW e come visualizzare i dati, vedere Monitorare l'attività del sistema mediante gli eventi estesi.