문제

저는 SQL Server 2000 데이터베이스의 교착 상태 문제를 디버그하고 추적하는 방법에 대한 제안을 찾고 있습니다.나는 추적 플래그 1024와 3605를 사용하도록 권장받았는데, 내가 찾은 결과는 다음과 같습니다.

1024 - 이 추적 플래그는 교착 상태에 참여하는 잠금 유형과 영향을 받는 현재 명령을 반환합니다.

3605 - 이 추적 플래그는 추적 출력을 오류 로그로 보냅니다.

특정 저장 프로시저, 테이블 및 인덱스는 여전히 검색해야 하므로 이러한 추적 플래그를 사용하여 검색하는 것이 목표입니다.그런 다음 조정이 필요한 인덱스, 쿼리 조정을 위한 잠금 힌트 및 수정해야 할 잠재적인 sproc 버그를 더 잘 알게 됩니다.

이 모든 것을 일반적인 문제로 추적하는 데 대한 다른 제안이나 해피 엔딩 전쟁 이야기가 있습니까?

도움이 되었습니까?

해결책

교착 상태 문제 해결에 대한 성경은 다음과 같습니다. http://blogs.msdn.com/bartd/archive/2006/09/09/Deadlock-Troubleshooting_2C00_-Part-1.aspx

다른 팁

교착 상태 분석에 매우 유용한 스크립트: http://www.sommarskog.se/sqlutil/aba_lockinfo.html

관련된 SQL 문을 알고 나면 코드 분석이 확실히 도움이 될 것입니다.일부 경험적 규칙은 행에 액세스되는 순서를 확인하고 SQL 문에 사용되는 격리 수준을 확인합니다.프로파일러 추적은 많은 도움이 될 수 있습니다.

대부분의 경우 이는 작성자가 독점적으로 잠긴 리소스에 대해 독자가 공유 잠금을 얻으려고 하기 때문입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top