일반적이 아닌 잠금에 특히 관심이 있으므로 locks_lock_waits
확장 된 이벤트 사운드가 더 적합 할 때 까지 기다립니다 .
필터를 켠 상태 increment >= 200
CREATE EVENT SESSION [locks_lock_waits] ON SERVER
ADD EVENT sqlserver.locks_lock_waits(
ACTION(sqlserver.sql_text)
WHERE ( [sqlserver].[is_system] = 0
AND [increment] >= 200
AND [counter] <= 1000 )
)
ADD TARGET package0.ring_buffer;
GO
ALTER EVENT SESSION [locks_lock_waits]
ON SERVER STATE = start;
위의 문은 임계 시간 동안 잠금을 기다리는 명령문을 수집하지만 특정 잠금 리소스를 제공하지는 않습니다.
이 이벤트를 사용한 적이 없으며이 세션이 프로덕션 서버에서 얼마나 많은 오버 헤드를 유발하는지에 대한 통찰력이 없습니다.
주제 에서이 비디오 를 찾았습니다 . counter
수집되는 이벤트 수를 줄이려면 필터링을 사용하는 것이 좋습니다 .
또한 문서화되지 않은 오래된 레거시 명령에 대해서도 언급합니다.
dbcc lock(StallReportThreshold, 200) -- 200 is threshold in ms
(추적 플래그 3605가 활성화 된 경우) 다음과 같은 제한된 정보를 SQL Server 오류 로그에 덤프합니다.
프로세스 53은 RID에서 S 잠금을 위해 6844ms를 기다렸습니다 : 2 : 1 : 120 : 2 결과 : OKWAIT
어쨌든 확장 이벤트가 문서화되고 훨씬 강력하기 때문에 분명히 확장 이벤트가 바람직하기 때문에 이것을 언급합니다.