SQL 2005 교착 상태: 추적 실행 및 로그 검사

SQL 2005 교착 상태: 추적 실행 및 로그 검사

우리는 SQL Server 2005(64비트) 컴퓨터에서 교착 상태를 일으키는 것으로 생각되는 타사 상용 응용 프로그램을 보유하고 있습니다. 지난주 소프트웨어 공급업체와의 1일 및 1/2일 교육을 마치고 소프트웨어를 보다 효율적으로 관리할 수 있도록 돕기 위해 지금은 SQL Server 프로파일러와 추적 템플릿을 최대한 활용하는 방법에 대해 조사하고 있습니다.

내 개인적인 모토는 "클라이언트 서버에 원격으로 연결할 수 있어야 하는 응용 프로그램을 구축하는 소프트웨어 공급업체라면 잘못하고 있는 것입니다."입니다. 불행하게도 지금은 선택의 여지가 별로 없습니다.

이 사람들(소프트웨어 공급업체)에 대해 더 많이 알게 될수록 그들에게 깊은 인상을 덜 받게 되며, "비하인드 스토리" 작업을 직접 수행하고 싶은 마음이 더 커집니다. 예를 들어, 몇 달 동안 서버가 크롤링 속도로 느려지는 문제가 있었지만 현재로서는 시스템에 추적 파일이나 추적 템플릿 파일이 전혀 표시되지 않습니다.

내 질문에 ...

  1. 추적 파일을 실행하면 서버 성능에 눈에 띄는 영향이 있습니까? 내 생각에 대답은 "상황에 따라 다르다"일 것이다. 그렇다면 방금 만든 새 추적 템플릿에서 선택한 "이벤트"는 다음과 같습니다.

    • 교착상태 그래프
    • 잠금: 교착 상태
    • 잠금: 교착 상태 체인
    • RPC:완료됨
    • SP:Stmt완료됨
    • SQL:배치 완료됨
    • SQL:일괄 시작
  2. 교착 상태가 실제로 발생하기 전에 추적을 실행해야 합니까, 아니면 성능이 크게 저하되는 시점에 추적을 실행할 수 있습니까?

  3. 나는 지금 SQL 로그를 검토하기 위한 팁과 기술에 대해 읽고 있습니다. 왜냐하면 우리가 그다지 관심을 기울이지 않았던 부분이기 때문입니다. SQL Server Management Studio로 이동하여 관리 및 SQL Server 로그로 이동하면 "교착 상태"/"교착 상태" 등의 항목을 찾을 수 없습니다. 따라서 교착 상태가 발생하지 않을 수도 있습니다. 누군가 교착 상태가 SQL 로그에 표시되는지 여부를 확인해 줄 수 있습니까? 그렇다면 검색 기준에서 항목을 찾기 위해 무엇을 사용할 수 있습니까?

답변1

SQL Server에서 추적을 실행하면 SQL Server에 영향을 미칩니다. 기본적인 경험 법칙은 서버에서 수행하는 모든 작업에는 리소스가 필요하다는 것입니다. SQL Server에 대해 추적이나 SQL 프로파일러를 실행하면 성능 문제가 발생할 수 있나요? 네, 필터링이 없으면 가능합니다.

교착 상태 문제가 있는 경우 켜십시오.추적 플래그 1204 및 1222교착 상태에 대한 정보를 오류 로그에 출력합니다. 성능에 영향을 미칠 수 있으므로 항상 켜두지 마십시오. 오류 로그에 출력되는 정보는 교착 상태의 일부였던 명령문에 대한 모든 정보를 알려줍니다.

답변2

다음과 같은 진단 로그를 실행하는 한추적하다,보다 적은 리소스를 사용합니다.프로파일러그러나 항상 그렇듯이 대답은 서버 사양과 일반 생산 중에 동시에 진행되는 작업량에 따라 달라집니다. SQL 2005만 사용하고 있기 때문에 하드웨어가 너무 길다고 가정합니다. 이는 프로덕션 환경에서 실행할 때 주의해야 함을 의미합니다. 반쯤 맹목적으로 문제를 해결하려고 할 때나 심지어 새 상자에 대해 문제를 해결하려고 할 때 어쨌든 실제로 권장되지는 않습니다.

#2의 경우 IMO에서 무언가를 캡처하려는 경우 진단을 실행한 다음 교착 상태의 원인을 수행해야 합니다(응용 프로그램의 특정 이유나 이벤트 유형으로 범위를 좁혔다고 가정). 일반적으로 앱)

불행하게도 #3에서는 별로 도움이 되지 않습니다.

관련 정보