ALTER EVENT SESSION(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초입니다. 값으로 0을 사용하면 INFINITE 대기를 지정할 수 있습니다. 기본적으로 이 값은 30초로 설정됩니다.
|
||||||
MAX_EVENT_SIZE = size [ KB | MB ] |
이벤트에 허용되는 최대 크기를 지정합니다. MAX_EVENT_SIZE는 단일 이벤트가 MAX_MEMORY보다 크도록 설정해야만 합니다. 단일 이벤트가 MAX_MEMORY보다 작을 경우 오류가 발생합니다. size는 정수이며 KB 또는 MB 값일 수 있습니다. size가 KB로 지정되는 경우 최소 허용 크기는 64KB입니다. MAX_EVENT_SIZE가 설정된 경우 MAX_MEMORY 외에 size의 두 버퍼가 생깁니다. 이는 이벤트 버퍼링에 사용되는 총 메모리가 MAX_MEMORY + 2 * MAX_EVENT_SIZE임을 의미합니다. |
||||||
MEMORY_PARTITION_MODE = { NONE | PER_NODE | PER_CPU } |
이벤트 버퍼가 만들어지는 위치를 지정합니다.
|
||||||
TRACK_CAUSALITY = { ON | OFF } |
인과 관계를 추적할지 여부를 지정합니다. 이를 ON으로 설정하면 인과 관계에 따라 다른 서버 연결에 있는 관련 이벤트의 상호 연결이 허용됩니다. |
||||||
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)