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
Azure SQL Database
Azure SQL Istanza gestita
Database SQL in Microsoft Fabric
Una sessione di eventi estesi viene creata nel processo del motore di database di SQL Server in cui è ospitato il motore degli Eventi estesi. Gli aspetti seguenti di una sessione degli eventi estesi forniscono un contesto per la comprensione dell'infrastruttura degli eventi estesi e dell'elaborazione che si verifica:
Stati della sessione. Vari stati in cui si trova una sessione degli eventi estesi quando sono eseguite le istruzioni
CREATE EVENT SESSIONeALTER EVENT SESSION.Contenuto e caratteristiche della sessione. Contenuto di una sessione degli eventi estesi, ad esempio destinazioni ed eventi, e il modo in cui questi oggetti sono correlati in una sessione oggetti o tra le sessioni.
Stati sessione
Nella figura seguente sono mostrati i vari stati di una sessione degli eventi estesi.
Con riferimento alla figura precedente, si osservi come lo stato della sessione cambi man mano che vengono inviati i vari comandi Data Definition Language (DDL) per una sessione dell'evento. Tali cambiamenti di stato sono descritti nella tabella seguente.
| Etichetta di illustrazione | Istruzione DDL | Descrizione |
|---|---|---|
Create |
CREATE EVENT SESSION |
Il processo host consente di creare un oggetto di sessione contenente i metadati forniti da CREATE EVENT SESSION. Il processo host convalida la definizione di sessione, convalida il livello di autorizzazione dell'utente e archivia i metadati nel database master. A questo punto, la sessione non è attiva. |
Alter |
ALTER EVENT SESSION, STATE=START |
Il processo host avvia la sessione. Il processo host legge i metadati archiviati, convalida la definizione di sezione, verifica il livello di autorizzazione dell'utente e crea la sessione. Gli oggetti di sessione, ad esempio eventi e destinazioni, sono caricati e la gestione degli eventi è attiva. |
Alter |
ALTER EVENT SESSION, STATE=STOP |
Il processo host arresta la sessione attiva ma conserva i metadati. |
Drop |
DROP EVENT SESSION |
A seconda che la sessione sia attiva o meno, Drop (DROP SESSION) elimina i metadati e chiude la sessione attiva oppure elimina i metadati della sessione. |
Contenuto e caratteristiche della sessione
Le sessioni degli Eventi estesi dei limiti impliciti in quanto la configurazione di una sessione non modifica la configurazione di un'altra sessione. Tuttavia, questi limiti non impediscono che un evento o un tipo di destinazione siano utilizzati in più di una sessione.
Nella figura seguente viene illustrato il contenuto di una sessione e la relazione tra pacchetti e sessioni.
Con riferimento all'illustrazione precedente, tenere presente che:
- Il mapping tra oggetti del pacchetto e le sessioni è molti-a-molti. Ciò significa che un oggetto di un particolare tipo può apparire in più sessioni e una sessione può contenere più oggetti.
- Lo stesso tipo di evento (Evento 1) o di destinazione (Destinazione 1) può essere usato in più di una sessione.
Le sessioni hanno le seguenti caratteristiche:
- Azioni e predicati sono associati agli eventi per singola sessione. Se Evento 1 è presente nella sessione A con Azione 1 e predicato Z, ciò non ha alcuna influenza sulla presenza di Evento 1 nella sessione B con Azione 2 e Azione 3 senza predicato.
- I criteri sono allegati alle sessioni per gestire il buffering e il dispatch e il rilevamento della causalità.
Con buffering si intende come i dati dell'evento sono archiviati mentre è in esecuzione una sessione dell'evento. I criteri di buffering specificano quanta memoria utilizzare per i dati dell'evento e i criteri di perdita per gli eventi. Con dispatch si intende la durata degli eventi temporali che rimangono nei buffer prima di essere inviati alle destinazioni per essere elaborati.
Il rilevamento della causalità monitora il lavoro in più attività. Se il rilevamento della causalità è abilitato, ogni evento generato ha un ID attività univoco in tutto il sistema. L'ID attività è una combinazione di un valore GUID che rimane costante in tutti gli eventi per un'attività e un numero di sequenza che si incrementa ogni volta che viene generato un evento. Quando un'attività fa sì che il lavoro sia svolto da un'altra, l'ID attività padre è inviato all'attività figlio. L'attività figlio restituisce l'ID attività padre la prima volta che genera un evento.
Sessioni di eventi a tempo determinato
A partire da SQL Server 2025 (17.x), è possibile creare una sessione di eventi che si arresta automaticamente dopo la scadenza del tempo specificato. Ciò consente di evitare situazioni in cui le sessioni potrebbero essere lasciate in esecuzione per errore, consumando risorse e generando potenzialmente una grande quantità di dati.
Quando i dati dell'evento generati da una sessione sono voluminosi, le sessioni di eventi con associazione a tempo consentono di acquisire dati di diagnostica più piccoli e mirati per durate specifiche di tempo. È possibile avviare manualmente una sessione evento a tempo determinato o utilizzando un processo pianificato all'ora desiderata, con la garanzia che la sessione non rimanga in esecuzione indefinitamente.
Per rendere il tempo della sessione di un evento limitato, specificare il parametro MAX_DURATION durante la creazione o modifica della sessione. Per altre informazioni, vedere CREATE EVENT SESSION e ALTER EVENT SESSION.
Analogamente a qualsiasi sessione di eventi, è possibile arrestare una sessione limitata nel tempo prima della scadenza massima del tempo usando l'istruzione ALTER EVENT SESSION ... STATE = STOP. Se la sessione viene avviata nuovamente, l'intera durata specificata da MAX_DURATION deve trascorrere nuovamente prima che la sessione venga arrestata automaticamente.
È anche possibile modificare una sessione eventi esistente usando ALTER EVENT SESSION e specificare un tempo di durata massimo diverso oppure rimuoverlo specificando MAX_DURATION = UNLIMITED. Per modificare l'impostazione MAX_DURATION , è necessario arrestare la sessione.
Se una sessione eventi è associata al tempo, la max_duration colonna in sys.server_event_sessions vista del catalogo mostra la durata massima della sessione in secondi. La sessione eventi ha una durata illimitata se il valore è zero.