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