SQL Server 2008 R2에서 장기 실행 쿼리 또는 교착 상태 알림?


15

교착 상태에 대한 알림을 보내는 방법이 있는지 알고 싶습니다. 그렇다면 어떤 쿼리가 필요할 것입니다. SQL Server가 교착 상태를 처리한다는 것을 이해하고 있으며 관련 쿼리에 대한 정보를 원합니다.

장기 실행 쿼리를 결정하기 위해 다음을 발견했습니다.

SELECT 
    creation_time
    ,last_execution_time
    ,total_physical_reads
    ,total_logical_reads
    ,total_logical_writes
    , execution_count
    , total_worker_time
    , total_elapsed_time
    , total_elapsed_time / execution_count avg_elapsed_time
    ,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
    ((CASE statement_end_offset
        WHEN -1 THEN DATALENGTH(st.text)
        ELSE qs.statement_end_offset END
    - qs.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS qs
    CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st  
where total_elapsed_time >= 300000000 --5 min
ORDER BY total_elapsed_time / execution_count DESC; 

위의 방법이 올바른지 알고 싶습니다. 또는 표시된대로 5 분 동안 특정 간격보다 오래 걸리는 쿼리를 결정하는 더 좋은 방법이 있습니까?

감사

답변:


8

SQL 2008에는 교착 상태 및 장기 실행 쿼리에 사용할 수있는 새로운 기능인 확장 이벤트가 있습니다. 확장 이벤트는 저수준 개체이며 프로파일 링 / 추적, 경고 등과 같은 다른 방법보다 훨씬 적은 리소스를 사용합니다.

확장 이벤트를 사용하여 SQL 서버 MVP 인 Jonathan Kehayiasdeadlocks 의이 게시물 을 확인하십시오 .

확장 이벤트를 사용하여를 찾으려면 다른 SQL Server MVP 인 Pinal Dave의long running queries 자세한 게시물을 확인하십시오 .


10

SQL 에이전트를 사용하여이 두 가지에 대한 경고를 구성 할 수 있습니다. 새 경고를 만들고 "SQL Server 성능 조건 경고"유형을 선택하십시오.

장기 실행 쿼리의 경우 "MSSQL $ InstanceName : Transactions"개체 및 카운터 : 가장 긴 트랜잭션 실행 시간을 선택하십시오. 값과 경고 알림 옵션을 구성하면 좋습니다.

교착 상태의 경우 개체는 "MSSQL $ InstanceName : Locks"이고 카운터는 "Deadlocks / sec"입니다.

교착 상태 알림을보다 세밀하게 제어하려면 다음을 확인하십시오. http://www.sqlservercentral.com/articles/Administration/3243/


제안한대로 경고를 설정하려고했지만 단계가 정의 된 경우에만 작업이 실행됩니다. 작업 단계를 정의하지 않고 경고를 설정하는 방법이 있습니까?
Hasanain

4

SQL2008이 있으면 @StanleyJohns 제안을 선호합니다. 확장 이벤트는 진단 도구로 익숙 할 가치가 있으며 Jonathon의 XEvent a Day 시리즈는 시작하기에 좋은 곳입니다.

교착 상태에 대한 대안은 교착 상태 정보를 SQL 오류 로그에 덤프하는 추적 플래그 1204 및 1222 를 사용하는 것입니다. 두 가지를 모두 사용하면 두 가지 다른 형식으로 정보를 얻을 수 있으므로 복잡한 교착 상태 체인을보다 쉽게 ​​이해할 수 있습니다.

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