sys.dm_exec_background_job_queue_stats (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

非同期 (バックグラウンド) 実行のために送信された各クエリ プロセッサ ジョブの集計統計を提供する行を返します。

Note

これを Azure Synapse Analytics または Analytics Platform System (PDW) から呼び出すには、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、S0、S1 サービス目標、およびエラスティック プール内のデータベースの場合、サーバー管理者アカウント、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)