확장 이벤트 세션에서 매개 변수 값 수집


9

확장 이벤트를 사용하여 응용 프로그램에서 사용하는 명령문을 추적하고 있습니다. 사용 된 매개 변수실제 값 을 알고 싶은 경우를 제외하고 원하는 정보를 수집하는 세션을 작성했습니다 .

프로덕션 환경이 아닌 환경에서이 추적을 수행하고 있으며 추적으로 인한 성능 저하가 허용됩니다.

모든 쿼리는 최대 절전 모드에서 시작되며 다음과 같은 형식으로 매개 변수화되었습니다.

SELECT a, b, c From Customer where CustomerId = @P0

이것은 내 세션 설정입니다.

CREATE EVENT SESSION [TracingForStatements] ON SERVER 
ADD EVENT sqlserver.sp_statement_completed ( 
    ACTION (    
        sqlserver.session_id,
        package0.collect_system_time,
        sqlserver.transaction_id,
        package0.event_sequence
    ) 
    WHERE ( 
        sqlserver.database_id=555
    ) 
) 
ADD TARGET package0.ring_buffer(SET max_memory= 128000)
WITH (EVENT_RETENTION_MODE = NO_EVENT_LOSS, 
      MAX_DISPATCH_LATENCY = 1 SECONDS)

캡처 된 명령문에 사용 된 매개 변수의 실제 값을 어떻게 캡처 할 수 있습니까? 가능합니까?

- 편집 (해결 방법) : 이벤트를 rpc_completed로 변경하면 최대 절전 모드에서 호출 된 전체 sql 명령 (모든 매개 변수 값 포함)이 표시됩니다. 다른 경우에는 가능하면 매개 변수 값을 캡처하는 방법을 아는 것이 좋습니다.


sqlserver.rpc_completed가 매개 변수 값을 포함하여 완전한 T-SQL을 제공 하는지 확인하십시오 .
Ivan Stankovic

@IvanStankovic, 그렇습니다. 그렇습니다. "편집"의 질문에서 언급했듯이.
Peter Henell

답변:


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.