ALTER EVENT SESSION (Transact-SQL)
Запускает или останавливает сеанс событий или изменяет конфигурацию сеанса.
Синтаксические обозначения в Transact-SQL
Синтаксис
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 } ]
}
Аргументы
Условие |
Определение |
||||||||
event_session_name |
Имя существующего сеанса событий. |
||||||||
STATE = START | STOP |
Запускает или останавливает сеанс событий. Это аргумент действителен, только если к объекту сеанса событий применяется ALTER EVENT SESSION. |
||||||||
ADD EVENT <event_specifier> |
Связывает событие, определенное аргументом <event_specifier>, с сеансом событий. |
||||||||
[event_module_guid].event_package_name.event_name |
Имя события в пакете событий, где:
События отображаются в представлении sys.dm_xe_objects как object_type 'event'. |
||||||||
SET { event_customizable_attribute = <value> [ ,...n] } |
Указывает настраиваемые атрибуты для события. Настраиваемые атрибуты отображаются в представлении sys.dm_xe_object_columns как column_type 'customizable ' и object_name = event_name. |
||||||||
ACTION ( { [event_module_guid].event_package_name.action_name [ ,...n] } ) |
Действие, связанное с сеансом событий, где:
Действия отображаются в представлении sys.dm_xe_objects как object_type 'action'. |
||||||||
WHERE <predicate_expression> |
Задает выражение предиката, используемое, чтобы определить необходимость обработки события. Если <predicate_expression> имеет значение true, то обработка события продолжается действиями и целями сеанса. Если <predicate_expression> имеет значение false, то событие удаляется сеансом прежде, чем оно будет обработано действиями и целями для сеанса. Выражения предиката ограничены 3000 символами, что является пределом для строковых аргументов. |
||||||||
event_field_name |
Имя поля события, которое идентифицирует источник предиката. |
||||||||
[event_module_guid].event_package_name.predicate_source_name |
Имя глобального источника предиката, где:
|
||||||||
[event_module_guid].event_package_name.predicate_compare_name |
Имя объекта предиката, связываемого с событием, где:
|
||||||||
DROP EVENT <event_specifier> |
Удаляет событие, обозначенное <event_specifier>. <event_specifier> должен быть допустимым в рамках сеанса события. |
||||||||
ADD TARGET <event_target_specifier> |
Связывает цель, определенную аргументом <event_target_specifier>, с сеансом событий. |
||||||||
[event_module_guid].event_package_name.target_name |
Имя цели в сеансе событий, где:
|
||||||||
SET { target_parameter_name = <value> [, ...n] } |
Задает параметр цели. Целевые параметры отображаются в представлении sys.dm_xe_object_columns как column_type 'customizable' и object_name = target_name.
|
||||||||
DROP TARGET <event_target_specifier> |
Удаляет цель, обозначенную <event_target_specifier>. <event_target_specifier> должен быть допустимым в рамках сеанса события. |
||||||||
EVENT_RETENTION_MODE = { ALLOW_SINGLE_EVENT_LOSS | ALLOW_MULTIPLE_EVENT_LOSS | NO_EVENT_LOSS } |
Задает режим хранения событий, используемый для обработки потери события.
|
||||||||
MAX_DISPATCH_LATENCY = { seconds SECONDS | INFINITE } |
Задает промежуток времени, в течение которого события находятся в буферной памяти перед отправкой в цели сеанса событий. Минимальное значение задержки составляет 1 секунду. Чтобы задать неограниченную задержку (INFINITE), можно использовать значение 0. По умолчанию это значение равно 30 секундам.
|
||||||||
MAX_EVENT_SIZE = size [ KB | MB ] |
Задает максимальный допустимый размер для событий. MAX_EVENT_SIZE следует устанавливать только для того, чтобы разрешить одиночные события размером более MAX_MEMORY; задание значения, меньшего MAX_MEMORY, приведет к ошибке. size — целое значение, которое может быть представлено значением в килобайтах (КБ) или мегабайтах (МБ). Если значение size указано в килобайтах, то минимально допустимое значение — 64 KБ. Если задано значение MAX_EVENT_SIZE, то в дополнение к MAX_MEMORY создаются два буфера размером size. Это значит, что общий объем памяти, используемой для буферизации событий, составляет MAX_MEMORY + 2 * MAX_EVENT_SIZE. |
||||||||
MEMORY_PARTITION_MODE = { NONE | PER_NODE | PER_CPU } |
Задает место, в котором создаются буферы событий.
|
||||||||
TRACK_CAUSALITY = { ON | OFF } |
Указывает, будут ли отслеживаться причинно-следственные связи. Если отслеживание включено, то причинность позволяет коррелировать связанные события в различных серверных соединениях. |
||||||||
STARTUP_STATE = { ON | OFF } |
Указывает, необходимо ли запустить данный сеанс событий автоматически при запуске SQL Server.
|
Замечания
Аргументы ADD и DROP нельзя использовать в одной инструкции.
Разрешения
Необходимо разрешение ALTER ANY EVENT SESSION.
Примеры
Следующий пример запускает сеанс событий, получает динамическую статистику сеанса, а затем добавляет два события в существующий сеанс.
-- 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
См. также
Справочник
CREATE EVENT SESSION (Transact-SQL)
DROP EVENT SESSION (Transact-SQL)
sys.server_event_sessions (Transact-SQL)
Динамическое административное представление sys.dm_xe_objects (Transact-SQL)
sys.dm_xe_object_columns (Transact-SQL)