Pacchetti degli eventi estesi di SQL ServerSQL Server Extended Events Packages

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2014)sìDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2014)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Un pacchetto è un contenitore per oggetti eventi estesi di SQL ServerSQL Server .A package is a container for SQL ServerSQL Server Extended Events objects. Di seguito vengono indicati i tre tipi di pacchetti di eventi estesi:There are three kinds of Extended Events packages, which include the following:

  • package0 – Oggetti di sistema Eventi estesi.package0 - Extended Events system objects. Questo è il pacchetto predefinito.This is the default package.

  • sqlserver: oggetti correlati a SQL ServerSQL Server .sqlserver - SQL ServerSQL Server related objects.

  • sqlos: oggetti correlati al sistema operativo di SQL ServerSQL Server (SQLOS).sqlos - SQL ServerSQL Server Operating System (SQLOS) related objects.

Nota

Il pacchetto SecAudit viene utilizzato da SQL ServerSQL Server Audit.The SecAudit package is used by SQL ServerSQL Server Audit. Nessuno degli oggetti nel pacchetto è disponibile tramite DDL (Data Definition Language) di eventi estesi.None of the objects in the package are available through the Extended Events data definition language (DDL).

I pacchetti sono identificati da un nome, da un GUID e dal modulo binario che contiene il pacchetto.Packages are identified by a name, a GUID, and the binary module that contains the package. Per altre informazioni, vedere sys.dm_xe_packages (Transact-SQL).For more information, see sys.dm_xe_packages (Transact-SQL).

Un pacchetto può contenere alcuni o tutti gli oggetti seguenti, che vengono discussi in maggior dettaglio più avanti in questo argomento:A package can contain any or all of the following objects, which are discussed in greater detail later in this topic:

  • EventiEvents

  • Server di destinazioneTargets

  • AzioniActions

  • TipiTypes

  • PredicatiPredicates

  • MappeMaps

    Oggetti da pacchetti diversi possono essere combinati in una sessione dell'evento.Objects from different packages can be mixed in an event session. Per altre informazioni, vedere Sessioni Eventi estesi di SQL Server.For more information, see SQL Server Extended Events Sessions.

Contenuti del pacchettoPackage Contents

Nella figura seguente si illustrano gli oggetti che possono essere presenti nei pacchetti, che sono contenuti in un modulo.The following illustration shows the objects that can exist in packages, which are contained in a module. Un modulo può essere un file eseguibile o una libreria a collegamento dinamico (DLL).A module can be an executable or a dynamic link library.

Relazione tra modulo, pacchetti e oggettiThe relationship of a module, packages, and object

EventiEvents

Gli eventi monitorano i punti di interesse nel percorso di esecuzione di un programma, ad esempio SQL ServerSQL Server.Events are monitoring points of interest in the execution path of a program, such as SQL ServerSQL Server. La generazione di un evento implica che il punto di interesse è stato raggiunto e fornisce informazioni sullo stato derivanti dall'ora in cui l'evento è stato generato.An event firing carries with it the fact that the point of interest was reached, and state information from the time the event was fired.

Gli eventi possono essere utilizzati solamente per scopi di traccia o per azioni di trigger.Events can be used solely for tracing purposes or for triggering actions. Queste azioni possono essere sincrone o asincrone.These actions can either be synchronous or asynchronous.

Nota

Un evento non ha alcuna conoscenza delle azioni che possono essere lanciate in risposta all'attivazione di eventi.An event does not have any knowledge of the actions that may be triggered in response to the event firing.

Un set di eventi in un pacchetto non può essere modificato dopo che il pacchetto viene registrato con gli eventi estesi.A set of events in a package cannot change after the package is registered with Extended Events.

A tutti gli eventi è associato uno schema con versione che ne definisce il contenuto.All events have a versioned schema which defines their contents. Questo schema è costituito da colonne di evento con tipi ben definiti.This schema is composed of event columns with well defined types. Un evento di un tipo specifico deve sempre fornire i propri dati nell'ordine esatto specificato nello schema.An event of a specific type must always provide its data in exactly the same order that is specified in the schema. Una destinazione dell'evento non deve tuttavia utilizzare tutti i dati forniti.However, an event target does not have to consume all the data that is provided.

Categorizzazione dell'eventoEvent Categorization

Negli eventi estesi viene utilizzato un modello di categorizzazione dell'evento simile a Analisi eventi per Windows (ETW).Extended Events uses an event categorization model similar to Event Tracing for Windows (ETW). Due proprietà dell'evento sono utilizzate per categorizzazione, canale e parola chiave.Two event properties are used for categorization, channel and keyword. L'utilizzo di queste proprietà supporta l'integrazione degli eventi estesi con ETW e i suoi strumenti.Using these properties supports the integration of Extended Events with ETW and its tools.

ChannelChannel

Un canale identifica il pubblico per un evento.A channel identifies the audience for an event. Questi canali sono descritti nella tabella seguente.These channels are described in the following table.

NomeTerm DefinizioneDefinition
AmministrativiAdmin Gli eventi amministrativi sono indirizzati principalmente agli utenti finali, agli 'amministratori e al supporto.Admin events are primarily targeted to the end users, administrators, and support. Gli eventi trovati nei canali amministrativi indicano un problema con una soluzione ben definita sul quale può agire un amministratore.The events that are found in the admin channels indicate a problem with a well-defined solution that an administrator can act on. Un esempio di evento amministrativo è quando un'applicazione non riesce a connettersi a una stampante.An example of an admin event is when an application fails to connect to a printer. Questi eventi sono ben documentati oppure hanno un messaggio ad essi associato che comunica a chi legge che cosa fare per risolvere il problema.These events are either well-documented or have a message associated with them that tells the reader what to do to rectify the problem.
OperativoOperational Gli eventi operativi sono utilizzati per l'analisi e la diagnostica di un problema o di un'occorrenza.Operational events are used for analyzing and diagnosing a problem or occurrence. Possono essere utilizzati per attivare strumenti o attività basate su un problema o un'occorrenza.They can be used to trigger tools or tasks based on the problem or occurrence. Un esempio di un evento operativo è quando una stampante viene aggiunta o rimossa da un sistema.An example of an operational event is when a printer is added or removed from a system.
AnaliticiAnalytic Gli eventi analitici sono pubblicati in volumi elevati.Analytic events are published in high volume. Descrivono il funzionamento del programma e sono in genere utilizzati nell'analisi delle prestazioni.They describe program operation and are typically used in performance investigations.
DebugDebug Gli eventi di debug sono utilizzati solamente dagli sviluppatori per diagnosticare un problema nelle operazioni di debug.Debug events are used solely by developers to diagnose a problem for debugging.

Gli eventi nel canale di debug restituiscono dati interni, specifici dell'implementazione, relativi allo stato.Events in the Debug channel return internal implementation-specific state data. Gli schemi e i dati restituiti dagli eventi potrebbero cambiare o non essere più validi nelle versioni future di SQL Server.The schemas and data that the events return may change or become invalid in future versions of SQL Server. Pertanto, gli eventi nel canale di debug potrebbero cambiare o essere rimossi senza preavviso nelle versioni future di SQL Server.Therefore, events in the Debug channel may change or be removed in future versions of SQL Server without notice.

Parola chiaveKeyword

Una parola chiave è un'applicazione specifica e abilita un raggruppamento più preciso di eventi correlati, ciò rende più facile specificare e recuperare un evento che si desidera utilizzare in una sessione.A keyword is application specific and enables a finer-grained grouping of related events, which makes it easier for you to specify and retrieve an event that you want to use in a session. È possibile utilizzare la seguente query ottenere informazioni sulla parola chiave:You can use the following query to obtain keyword information.

select map_value Keyword from sys.dm_xe_map_values  
where name = 'keyword_map'  
Nota

Le parole chiave eseguono il mapping ravvicinato degli eventi Traccia SQL.Keywords map closely to the current grouping of SQL Trace events.

Server di destinazioneTargets

Le destinazioni sono consumer di eventi.Targets are event consumers. Le destinazioni elaborano gli eventi, in modo sincrono nel thread che genera l'evento o in modo asincrono in un thread fornito dal sistema.Targets process events, either synchronously on the thread that fires the event or asynchronously on a system provided thread. Gli eventi estesi forniscono diverse destinazioni che è possibile utilizzare in base alle proprie esigenze per indirizzare l'output dell'evento.Extended Events provides several targets that you can use as appropriate for directing event output. Per ulteriori informazioni, vedere SQL Server Extended Events Targets.For more information, see SQL Server Extended Events Targets.

AzioniActions

Un'azione è una risposta o una serie di risposte a un evento a livello di programmazione.An action is a programmatic response or series of responses to an event. Le azioni sono associate a un evento e a ogni evento può essere associato un set univoco di azioni.Actions are bound to an event, and each event may have a unique set of actions.

Nota

Le azioni destinate a un set specifico di eventi non possono essere associate a eventi sconosciuti.Actions that are intended for a specific set of events cannot bind to unknown events.

Un'azione associata a un evento viene richiamata in modo sincrono sul thread che ha attivato l'evento.An action bound to an event is invoked synchronously on the thread that fired the event. Vi sono molti tipi di azioni e hanno un'ampia gamma di funzionalità.There are many types of actions and they have a wide range of capabilities. Le azioni possono:Actions can:

  • Acquisire un dump dello stack e verificare dati.Capture a stack dump and inspect data.

  • Archiviare informazioni sullo stato in un contesto locale utilizzando l'archiviazione variabile.Store state information in a local context using variable storage.

  • Aggregare dati dell'evento.Aggregate event data.

  • Accodare dati ai dati dell'evento.Append data to event data.

    Di seguito vengono riportati alcuni esempi tipici e noti di azioni:Some typical and well known examples of actions are:

  • Dumper dello stackStack dumper

  • Rilevamento del piano di esecuzione (solo SQL ServerSQL Server )Execution plan detection ( SQL ServerSQL Server only)

  • Transact-SQLTransact-SQL raccolta di stack (solo SQL ServerSQL Server ) only)

  • Esecuzione di calcoli di statistiche temporaliRun time statistics calculation

  • Raccolta di input utente in caso di eccezioneGather user input on exception

PredicatiPredicates

I predicati rappresentano un set di regole logiche utilizzate per valutare gli eventi quando vengono elaborati.Predicates are a set of logical rules that are used to evaluate events when they are processed. In questo modo l'utente degli eventi estesi è in grado di acquisire selettivamente i dati dell'evento in base a criteri specifici.This enables the Extended Events user to selectively capture event data based on specific criteria.

I predicati possono archiviare i dati in un contesto locale che può essere usato per la creazione di predicati che restituiscono True ogni n minuti o ogni n volte che un evento viene generato.Predicates can store data in a local context that can be used for creating predicates that return true once every n minutes or every n times that an event fires. Questa archiviazione del contesto locale può essere utilizzata anche per aggiornare dinamicamente il predicato, sopprimendo con ciò le generazioni future dell'evento se l'evento contiene dati simili.This local context storage can also be used to dynamically update the predicate, thereby suppressing future event firing if the events contain similar data.

I predicati hanno la possibilità di recuperare informazioni sul contesto, ad esempio l'ID del thread, così come dati specifici sull'evento.Predicates have the ability to retrieve context information, such as the thread ID, as well as event specific data. I predicati sono valutati come espressioni booleane complete e supportano operazioni di corto circuito nel primo punto dove viene individuato che l'intera l'espressione è falsa.Predicates are evaluated as full Boolean expressions, and support short circuiting at the first point where the entire expression is found to be false.

Nota

I predicati con effetti collaterali non possono essere valutati se una precedente verifica del predicato non riesce.Predicates with side effects may not be evaluated if an earlier predicate check fails.

TipiTypes

Poiché i dati sono una raccolta di byte, la lunghezza e le funzionalità della raccolta dei byte sono necessarie per interpretarli.Because data is a collection of bytes strung together, the length and characteristics of the byte collection are required in order to interpret the data. Queste informazioni sono incapsulate nell'oggetto Tipo.This information is encapsulated in the Type object. I tipi seguenti sono forniti per gli oggetti del pacchetto:The following types are provided for package objects:

MappeMaps

Una tabella della mappa esegue il mapping di un valore interno a una stringa e ciò consente a un utente di conoscere ciò che rappresenta il valore.A map table maps an internal value to a string, which enables a user to know what the value represents. Anziché essere in grado di ottenere solo un valore numerico, un utente può ottenere una descrizione significativa del valore interno.Instead of only being able to obtain a numeric value, a user can get a meaningful description of the internal value. Nella query seguente si illustra come ottenere valori della mappa.The following query shows how to obtain map values.

select map_key, map_value from sys.dm_xe_map_values  
where name = 'lock_mode'  

La query precedente produce l'output seguente:The preceding query produces the following output.

map_key map_value

---------------------

0 NL

1 SCH_S

2 SCH_M

3 S

4 U

5 X

6 IS

7 IU

8 IX

9 SIU

10 SIX

11 UIX

12 BU

13 RS_S

14 RS_U

15 RI_NL

16 RI_S

17 RI_U

18 RI_X

19 RX_S

20 RX_U

21 RX_X

21 RX_X

Utilizzare tabella come esempio, supponendo di avere una modalità di colonna denominata il cui valore è 5.Using this table as an example, assume that you have a column named mode, and its value is 5. La tabella indica che è stato eseguito il mapping di 5 a X, ovvero il tipo di blocco è Esclusivo.The table indicates that 5 maps to X, which means the lock type is Exclusive.

Vedere ancheSee Also

Sessioni Eventi estesi di SQL Server SQL Server Extended Events Sessions
Motore degli eventi estesi di SQL Server SQL Server Extended Events Engine
SQL Server Extended Events Targets SQL Server Extended Events Targets