다음을 통해 공유


sys.dm_exec_background_job_queue_stats(Transact-SQL)

비동기(백그라운드) 실행을 위해 제출된 각 쿼리 프로세서 작업에 대해 집계 통계를 제공하는 행을 반환합니다.

열 이름

데이터 형식

설명

queue_max_len

int

최대 큐 길이입니다.

enqueued_count

int

큐에 성공적으로 게시된 요청 수입니다.

started_count

int

실행이 시작된 요청 수입니다.

ended_count

int

서비스에 성공하거나 실패한 요청 수입니다.

failed_lock_count

int

잠금 경합이나 교착 상태로 인해 실패한 요청 수입니다.

failed_other_count

int

다른 이유로 인해 실패한 요청 수입니다.

failed_giveup_count

int

다시 시도 제한에 도달하여 실패한 요청 수입니다.

enqueue_failed_full_count

int

큐가 꽉 차서 큐에 넣지 못한 시도 수입니다.

enqueue_failed_duplicate_count

int

중복으로 큐에 넣는 시도 수입니다.

elapsed_avg_ms

int

요청의 평균 경과 시간(밀리초)입니다.

elapsed_max_ms

int

가장 긴 요청의 경과 시간(밀리초)입니다.

주의

이 뷰는 비동기 업데이트 통계 작업에 대해서만 정보를 반환합니다. 비동기 업데이트 통계에 대한 자세한 내용은 통계를 사용하여 쿼리 성능 향상를 참조하십시오.

사용 권한

서버에 대한 VIEW SERVER STATE 권한이 필요합니다.

1. 실패한 백그라운드 작업의 백분율 확인

다음 예에서는 실행된 모든 쿼리에 대해 실패한 백그라운드 작업의 백분율을 반환합니다.

SELECT 
        CASE ended_count WHEN 0 
                THEN 'No jobs ended' 
                ELSE CAST((failed_lock_count + failed_giveup_count + failed_other_count) / CAST(ended_count AS float) * 100 AS varchar(20)) 
        END AS [Percent Failed]
FROM sys.dm_exec_background_job_queue_stats;
GO

2. 큐에 넣지 못한 시도의 백분율 확인

다음 예에서는 실행된 모든 쿼리에 대해 큐에 넣지 못한 시도의 백분율을 반환합니다.

SELECT 
        CASE enqueued_count WHEN 0 
                THEN 'No jobs posted' 
                ELSE CAST((enqueue_failed_full_count + enqueue_failed_duplicate_count) / CAST(enqueued_count AS float) * 100 AS varchar(20)) 
        END AS [Percent Enqueue Failed]
FROM sys.dm_exec_background_job_queue_stats;
GO