증상
Microsoft SQL Server 2016 및 2017을 사용 한다고 가정 합니다. 교착 상태에 대 한 데이터를 수집 하는 이벤트 xml_deadlock_report 을 사용 하도록 설정 하는 경우 하나의 단일 쿼리 교착 상태 발생에 대해 많은 xml_deadlock_report 이벤트가 보고 됩니다.
해결 방법
이 문제에 대 한 해결 방법으로 다음 예제에 표시 된 대로 xml_deadlock_report 대신 error_number = 1205 필터를 사용 하 여 error_reported XEvent를 수집할 수 있습니다.
서버에서 이벤트 세션 [Deadlock_Collection] 만들기
이벤트 sqlserver.error_reported 추가 (
WHERE ([error_number] = (1205))))
대상 package0 추가 히스토그램 (SET filtering_event_name = N ' sqlserver.lock_acquired ', source = N ' sqlserver.query_hash ')
(MAX_MEMORY = 4096 KB, EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, MAX_DISPATCH_LATENCY = 30 초, MAX_EVENT_SIZE = 0 KB, MEMORY_PARTITION_MODE = 없음, TRACK_CAUSALITY = ON, STARTUP_STATE = OFF)
보려면
해결 방법
이 문제는 다음과 같은 SQL Server 누적 업데이트에서 해결 되었습니다.
SQL Server 2016 SP2에 대 한 누적 업데이트 2
기록이 해결 방법을 사용 하면 스레드를 종료 하지 않고 교착 상태를 해결할 수 있는 경우 내부 쿼리 교착 상태에 대 한 이벤트를 보고 xml_deadlock_report 않습니다.
각각의 새로운 새 누적 업데이트에는 이전 누적 업데이트에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. SQL Server에 대 한 최신 누적 업데이트를 확인 하세요.
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.
참조
Microsoft에서 소프트웨어 업데이트를 설명 하는 데 사용 하는 용어에 대해 알아봅니다.