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 權限。
範例
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 AS float) * 100 AS varchar(20))
END AS [Percent Enqueue Failed]
FROM sys.dm_exec_background_job_queue_stats;
GO