ALTER EVENT SESSION (Transact-SQL)
Avvia o arresta una sessione eventi o modifica una configurazione della sessione eventi
Sintassi
ALTER EVENT SESSION event_session_name
ON SERVER
{
[ [ { <add_drop_event> [ ,...n] }
| { <add_drop_event_target> [ ,...n ] } ]
[ WITH ( <event_session_options> [ ,...n ] ) ]
]
| [ STATE = { START | STOP } ]
}
<add_drop_event>::=
{
[ ADD EVENT <event_specifier>
[ ( {
[ SET { event_customizable_attribute = <value> [ ,...n ] } ]
[ ACTION ( { [event_module_guid].event_package_name.action_name [ ,...n ] } ) ]
[ WHERE <predicate_expression> ]
} ) ]
]
| DROP EVENT <event_specifier> }
<event_specifier> ::=
{
[event_module_guid].event_package_name.event_name
}
<predicate_expression> ::=
{
[ NOT ] <predicate_factor> | {( <predicate_expression> ) }
[ { AND | OR } [ NOT ] { <predicate_factor> | ( <predicate_expression> ) } ]
[ ,...n ]
}
<predicate_factor>::=
{
<predicate_leaf> | ( <predicate_expression> )
}
<predicate_leaf>::=
{
<predicate_source_declaration> { = | < > | ! = | > | > = | < | < = } <value>
| [event_module_guid].event_package_name.predicate_compare_name ( <predicate_source_declaration>, <value> )
}
<predicate_source_declaration>::=
{
event_field_name | ( [event_module_guid].event_package_name.predicate_source_name )
}
<value>::=
{
number | 'string'
}
<add_drop_event_target>::=
{
ADD TARGET <event_target_specifier>
[ ( SET { target_parameter_name = <value> [ ,...n] } ) ]
| DROP TARGET <event_target_specifier>
}
<event_target_specifier>::=
{
[event_module_guid].event_package_name.target_name
}
<event_session_options>::=
{
[ MAX_MEMORY = size [ KB | MB ] ]
[ [,] EVENT_RETENTION_MODE = { ALLOW_SINGLE_EVENT_LOSS | ALLOW_MULTIPLE_EVENT_LOSS | NO_EVENT_LOSS } ]
[ [,] MAX_DISPATCH_LATENCY = { seconds SECONDS | INFINITE } ]
[ [,] MAX_EVENT_SIZE = size [ KB | MB ] ]
[ [,] MEMORY_PARTITION_MODE = { NONE | PER_NODE | PER_CPU } ]
[ [,] TRACK_CAUSALITY = { ON | OFF } ]
[ [,] STARTUP_STATE = { ON | OFF } ]
}
Argomenti
Nome |
Definizione |
event_session_name |
Nome di una sessione dell'evento esistente. |
STATE = START | STOP |
Avvia o arresta la sessione dell'evento. Questo argomento è valido solo quando ALTER EVENT SESSION è applicato a un oggetto della sessione dell'evento. |
ADD EVENT <event_specifier> |
Associa l'evento identificato da <event_specifier>con la sessione dell'evento. |
[event_module_guid].event_package_name.event_name |
Nome di un evento in un pacchetto dell'evento dove:
Gli eventi vengono visualizzati nella vista sys.dm_xe_objects come evento object_type. |
SET { event_customizable_attribute = <valore> [ ,...n] } |
Specifica gli attributi personalizzabili per l'evento. Gli attributi personalizzabili vengono visualizzati nella vista sys.dm_xe_object_columns come column_type 'customizable' e object_name = event_name. |
ACTION ( { [event_module_guid].event_package_name.action_name [ ,...n] } ) |
Azione da associare alla sessione eventi, dove:
Le azioni vengono visualizzate nella vista sys.dm_xe_objects come azione object_type. |
WHERE <espressione_predicato> |
Indica l'espressione del predicato utilizzata per determinare se un evento deve essere elaborato. Se <predicate_expression> è True, l'evento viene elaborato ulteriormente dalle azioni e dalle destinazioni della sessione. Se <predicate_expression> è False, l'evento viene eliminato dalla sessione prima di essere elaborato dalle azioni e dalle destinazioni della sessione. Le espressioni del predicato possono essere composte da massimo 3000 caratteri, che costituisce un limite per gli argomenti di tipo stringa. |
event_field_name |
Nome del campo relativo all'evento che identifica l'origine del predicato. |
[event_module_guid].event_package_name.predicate_source_name |
Nome dell'origine del predicato globale dove:
|
[event_module_guid].event_package_name.predicate_compare_name |
Nome dell'oggetto predicato da associare all'evento, dove:
|
DROP EVENT <identificatore_evento> |
Elimina l'evento identificato da <event_specifier>. <identificatore_evento> deve essere valido nella sessione eventi. |
ADD TARGET <event_target_specifier> |
Associa la destinazione identificata da <event_target_specifier>con la sessione dell'evento. |
[event_module_guid].event_package_name.target_name |
Nome di una destinazione nella sessione dell'evento dove:
|
SET { target_parameter_name = <valore> [, ...n] } |
Imposta un parametro di destinazione. I parametri di destinazione vengono visualizzati nella vista sys.dm_xe_object_columns come column_type 'customizable' e object_name = target_name.
Importante
Se si utilizza il buffer circolare come destinazione, si consiglia di impostare il parametro di destinazione max_memory su 2048 kilobyte (KB) per evitare il possibile troncamento dei dati dell'output XML. Per ulteriori informazioni sui casi in cui è possibile utilizzare i diversi tipi di destinazione, vedere Destinazioni degli eventi estesi di SQL Server.
|
DROP TARGET <event_target_specifier> |
Elimina la destinazione identificata da <identificatore_destinazione_evento>. <identificatore_destinazione_evento> deve essere valido nella sessione eventi. |
WITH ( <opzioni_sessione_eventi> [ ,...n] ) |
Specifica le opzioni da utilizzare con la sessione eventi. |
MAX_MEMORY= size [ KB | MB ] |
La quantità di memoria allocata alla sessione per la memorizzazione degli eventi nel buffer. Il valore predefinito è 4 MB. size è un numero intero e può essere espresso in kilobyte (KB) o in megabyte (MB). La memoria allocata per le destinazioni asincrone è separata da questo valore. |
EVENT_RETENTION_MODE = { ALLOW_SINGLE_EVENT_LOSS | ALLOW_MULTIPLE_EVENT_LOSS | NO_EVENT_LOSS } |
Specifica la modalità di memorizzazione dell'evento da utilizzare per la gestione della perdita di eventi.
|
MAX_DISPATCH_LATENCY = { seconds SECONDS | INFINITE } |
Specifica il tempo necessario all'esecuzione del buffer degli eventi nella memoria prima che vengano resi disponibili nelle destinazioni della sessione. Il valore di latenza minimo è 1 secondo. È tuttavia possibile utilizzare il valore 0 per specificare una latenza infinita. Per impostazione predefinita, questo valore è impostato su 30 secondi.
|
MAX_EVENT_SIZE = size [ KB | MB ] |
Specifica la dimensione massima consentita per gli eventi. Il valore di MAX_EVENT_SIZE deve essere impostato solo per consentire singoli eventi di dimensioni superiori a quelle indicate da MAX_MEMORY. Se viene impostato un valore inferiore a quello di MAX_MEMORY, viene generato un errore. size è un numero intero e può essere espresso in kilobyte (KB) o in megabyte (MB). Se size viene indicato in kilobyte, la dimensione minima consentita è di 64 KB. Quando viene impostato MAX_EVENT_SIZE, vengono creati due buffer con dimensioni pari a size in aggiunta a MAX_MEMORY. Ciò significa che la memoria totale utilizzata per la memorizzazione degli eventi nel buffer è MAX_MEMORY + 2 * MAX_EVENT_SIZE. |
MEMORY_PARTITION_MODE ={ NONE | PER_NODE | PER_CPU } |
Specifica la posizione di creazione dei buffer dell'evento.
PER_NODEViene creato un set di buffer per ogni nodo NUMA. Per ulteriori informazioni, vedere Informazioni sull'architettura NUMA (Non-Uniform Memory Access).
PER_CPUViene creato un set di buffer per CPU.
|
TRACK_CAUSALITY ={ ON | OFF } |
Specifica se la causalità viene registrata. Se attivato, la causalità consente la correlazione di eventi correlati in diverse connessioni server. |
STARTUP_STATE ={ ON | OFF } |
Specifica se avviare automaticamente questa sessione eventi all'avvio di SQL Server.
Nota
Se STARTUP_STATE = ON, la sessione eventi si avvierà solo se SQL Server viene interrotto riavviato.
TermineDefinizione
ONLa sessione dell'evento ha inizio all'avvio.
OFFLa sessione dell'evento non ha inizio all'avvio.
|
Osservazioni
Non è possibile utilizzare gli argomenti ADD e DROP nella stessa istruzione.
Autorizzazioni
È richiesta l'autorizzazione CONTROL SERVER.
Esempi
Nell'esempio seguente viene avviata una sessione dell'evento, vengono ottenute alcune statistiche della sessione attiva e infine vengono aggiunti due eventi alla sessione esistente.
-- Start the event session
ALTER EVENT SESSION test_session
ON SERVER
STATE = start
GO
-- Obtain live session statistics
SELECT * FROM sys.dm_xe_sessions
SELECT * FROM sys.dm_xe_session_events
GO
-- Add new events to the session
ALTER EVENT SESSION test_session ON SERVER
ADD EVENT sqlserver.database_transaction_begin,
ADD EVENT sqlserver.database_transaction_end
GO