ALTER EVENT SESSION (Transact-SQL)
Inicia o detiene una sesión de eventos, o cambia la configuración de una sesión de eventos.
Sintaxis
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 } ]
}
Argumentos
Término |
Definición |
event_session_name |
Es el nombre de una sesión de eventos existente. |
STATE = START | STOP |
Inicia o detiene la sesión de eventos. Este argumento sólo es válido cuando ALTER EVENT SESSION se aplica a un objeto de sesión de eventos. |
ADD EVENT <event_specifier> |
Asocia el evento identificado por <event_specifier> con la sesión de eventos. |
[event_module_guid].event_package_name.event_name |
El nombre de un evento en un paquete de eventos, donde.
Los eventos aparecen en la vista sys.dm_xe_objects como object_type "event". |
SET { event_customizable_attribute = <value> [ ,...n] } |
Especifica atributos personalizables del evento. Los atributos personalizables aparecen en la vista sys.dm_xe_object_columns como column_type "customizable" y object_name = event_name. |
ACTION ( { [event_module_guid].event_package_name.action_name [ ,...n] } ) |
Es la acción que se va a asociar con la sesión de eventos, donde:
Las acciones aparecen en la vista sys.dm_xe_objects como object_type "action". |
WHERE <predicate_expression> |
Especifica la expresión de predicado usada para determinar si debería procesarse un evento. Si <predicate_expression> es true, las acciones y los destinos de la sesión siguen procesando el evento. Si <predicate_expression> es false, la sesión elimina el evento antes de que las acciones y los destinos de la sesión lo procesen. Las expresiones de predicado están limitadas a 3000 caracteres, lo que limita los argumentos de cadena. |
event_field_name |
Es el nombre del campo de evento que identifica el origen del predicado. |
[event_module_guid].event_package_name.predicate_source_name |
Es el nombre del origen del predicado global, donde:
|
[event_module_guid].event_package_name.predicate_compare_name |
Es el nombre del objeto del predicado que se va a asociar con el evento, donde:
|
DROP EVENT <event_specifier> |
Elimina el evento identificado por <event_specifier>. <event_specifier> debe ser válido en la sesión de eventos. |
ADD TARGET <event_target_specifier> |
Asocia el destino identificado por <event_target_specifier> con la sesión de eventos. |
[event_module_guid].event_package_name.target_name |
El nombre de un destino en la sesión de eventos, donde.
|
SET { target_parameter_name = <value> [, ...n] } |
Establece un parámetro de destino. Los parámetros de destino aparecen en la vista sys.dm_xe_object_columns como column_type "customizable" y object_name = target_name.
Importante
Si usa el destino de búfer en anillo, le recomendamos que establezca el parámetro de destino max_memory en 2048 kilobytes (KB) para intentar evitar el truncamiento de los datos en la salida XML. Para obtener más información acerca de cuándo se usan los distintos tipos de destino, vea Destinos de SQL Server Extended Events.
|
DROP TARGET <event_target_specifier> |
Elimina el destino identificado por <event_target_specifier>. <event_target_specifier> debe ser válido en la sesión de eventos. |
EVENT_RETENTION_MODE = { ALLOW_SINGLE_EVENT_LOSS | ALLOW_MULTIPLE_EVENT_LOSS | NO_EVENT_LOSS } |
Especifica el modo de retención de eventos usado para controlar las pérdidas de eventos.
|
MAX_DISPATCH_LATENCY = { seconds SECONDS | INFINITE } |
Especifica el tiempo que los eventos se almacenan en memoria antes de enviarse a los destinos de la sesión de eventos. El valor de latencia mínimo es de 1 segundo. Sin embargo, puede usarse el valor 0 para especificar la latencia INFINITE. Este valor se establece en 30 segundos de forma predeterminada.
|
MAX_EVENT_SIZE = size [ KB | MB ] |
Especifica el tamaño máximo permitido para los eventos. MAX_EVENT_SIZE sólo se debería establecer para permitir los eventos únicos mayores que MAX_MEMORY; al establecerlo en un valor menor que MAX_MEMORY, se producirá un error. size es un número entero y puede indicar kilobytes (KB) o megabytes (MB). Si size se especifica en kilobytes, el mínimo tamaño permitido es 64 KB. Cuando se establece MAX_EVENT_SIZE, se crean dos búferes de size además de MAX_MEMORY. Esto significa que la memoria total utilizada en búferes de eventos es MAX_MEMORY + 2 * MAX_EVENT_SIZE. |
MEMORY_PARTITION_MODE ={ NONE | PER_NODE | PER_CPU } |
Especifica la ubicación en la que se van a crear los búferes de eventos.
PER_NODESe crea un único conjunto de búferes por cada nodo NUMA. Para obtener más información, vea Descripción del acceso no uniforme a memoria.
PER_CPUSe crea un conjunto de búferes para cada CPU.
|
TRACK_CAUSALITY ={ ON | OFF } |
Especifica si se va a realizar el seguimiento de causalidad. Si está habilitada, la causalidad permite establecer correlaciones entre eventos relacionados en diferentes conexiones con el servidor. |
STARTUP_STATE ={ ON | OFF } |
Especifica si esta sesión de eventos se ejecuta automáticamente cuando se inicia SQL Server.
Nota
Si STARTUP_STATE = ON, la sesión de eventos se iniciará solo si se detiene SQL Server y se reinicia a continuación.
TérminoDefinición
ONLa sesión de eventos se inicia en el inicio.
OFFLa sesión de eventos no se inicia en el inicio.
|
Notas
En la misma instrucción no se pueden utilizar los argumentos ADD y DROP.
Permisos
Requiere el permiso CONTROL SERVER.
Ejemplos
En el ejemplo siguiente se inicia una sesión de eventos, se obtienen algunas estadísticas de la sesión activa y, a continuación, se agregan dos eventos a la sesión existente.
-- 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
Historial de cambios
Contenido actualizado |
---|
Se ha corregido el valor predeterminado para el argumento MAX_DISPATCH_LATENCY. |
Se ha agregado una nota importante en la descripción de SET { target_parameter_name = <value> [, ...n]. }. |