다음을 통해 공유


sys.dm_exec_background_job_queue_stats(Transact-SQL)

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)

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

참고 항목

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 이상에 대한 사용 권한

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

예제

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)