SQL 추적 및 확장 이벤트의 이벤트 대응을 얻습니다.

5784 단어 SQLServer

동기



SQL Server에서 확장 이벤트 세션을 설정하는 동안 "SQL 추적에서 말하는 이벤트가 없어요 ..."라는 장면이 드물게 자주 있습니다.
구체적으로는 SP:Completed 에 해당하는 이벤트를 찾을 수 없어서 곤란했습니다.

조사 방법



그럴 때는 아래 기사를 참고하여 이벤트의 대응을 확인하는 쿼리를 실행합시다.
SQL 추적 이벤트 클래스와 동등한 확장 이벤트 확인

쿼리


USE MASTER;
GO
SELECT DISTINCT
    tb.trace_event_id,
    te.name            AS 'Event Class',
    em.package_name    AS 'Package',
    em.xe_event_name   AS 'XEvent Name',
    tb.trace_column_id,
    tc.name            AS 'SQL Trace Column',
    am.xe_action_name  AS 'Extended Events action'
FROM
              sys.trace_events         te
    LEFT JOIN sys.trace_xe_event_map   em ON te.trace_event_id  = em.trace_event_id
    LEFT JOIN sys.trace_event_bindings tb ON em.trace_event_id  = tb.trace_event_id
    LEFT JOIN sys.trace_columns        tc ON tb.trace_column_id = tc.trace_column_id
    LEFT JOIN sys.trace_xe_action_map  am ON tc.trace_column_id = am.trace_column_id
ORDER BY te.name, tc.name

결과 (일부 발췌)




trace_event_id
이벤트 클래스
Package
XEvent Name
trace_column_id
SQL Trace Column
Extended Events action


43
SP:Completed
sqlserver
module_end
1
TextData
NULL

43
SP:Completed
sqlserver
module_end
2
BinaryData
NULL

43
SP:Completed
sqlserver
module_end
3
DatabaseID
database_id

43
SP:Completed
sqlserver
module_end
4
TransactionID
transaction_id

43
SP:Completed
sqlserver
module_end
5
LineNumber
tsql_frame

43
SP:Completed
sqlserver
module_end
6
NTUserName
nt_username

43
SP:Completed
sqlserver
module_end
7
NTDomainName
nt_username

43
SP:Completed
sqlserver
module_end
8
HostName
client_hostname

43
SP:Completed
sqlserver
module_end
9
ClientProcessID
client_pid

43
SP:Completed
sqlserver
module_end
10
ApplicationName
client_app_name

43
SP:Completed
sqlserver
module_end
11
LoginName
server_principal_name

43
SP:Completed
sqlserver
module_end
12
SPID
session_id


SQL 트레이스에서 말하는 SP:Completed 를 확장 이벤트로 취득하려면 module_end 로 취득하면 좋은 것을 알았습니다.

여담



이벤트를 찾는 목적으로 세션을 만들 때 필터링할 수 있습니다.RPC:Completedrpc_completedSP:StmtCompletedsp_statement_completedSP:Completedsp_completed 그렇군요-라고 생각하면 설마의 module_end 이었던 것이 아니라고 생각했습니다, 반성.

좋은 웹페이지 즐겨찾기