sys.dm_exec_background_job_queue_stats(Transact-SQL)

적용 대상:SQL 서버Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics분석 플랫폼 시스템(PDW)Microsoft Fabric의 SQL 데이터베이스

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

참고 항목

Azure Synapse Analytics 또는 PDW(Analytics Platform System)에서 이를 호출하려면 이름 sys.dm_pdw_nodes_exec_background_job_queue_stats 사용합니다. 이 구문은 Azure Synapse Analytics의 서버리스 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 가장 긴 요청의 경과 시간(밀리초)입니다.
pdw_node_id int 적용 대상: Azure Synapse Analytics, Analytics Platform System(PDW)

이 배포가 있는 노드의 식별자입니다.

설명

이 뷰는 비동기 업데이트 통계 작업에 대한 정보만 반환합니다. 비동기 업데이트 통계에 대한 자세한 내용은 통계를 참조 하세요.

사용 권한

SQL Server 및 SQL Managed Instance에서는 VIEW SERVER STATE 권한이 필요합니다.

SQL Database Basic, S0S1 서비스 목표 또는 탄력적 풀 내의 데이터베이스에 대해서는 서버 관리자 계정, Microsoft Entra 관리자 계정 또는 ##MS_ServerStateReader##서버 역할의 멤버 자격이 필요합니다. 다른 모든 SQL Database 서비스 목표에 대해서는 데이터베이스에 대한 VIEW DATABASE STATE 권한 또는 ##MS_ServerStateReader## 서버 역할의 멤버 자격이 필요합니다.

SQL Server 2022 이상에 대한 사용 권한

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

예제

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

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

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  

B. 실패한 큐에 넣기 시도의 백분율 확인

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

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

참고 항목

동적 관리 뷰 및 함수(Transact-SQL)
실행 관련 동적 관리 뷰 및 함수(Transact-SQL)