sys.dm_exec_background_job_queue_stats
Возвращает строку, в которой предоставляются статистические данные для каждого задания обработчика запросов, передаваемого для асинхронного (фонового) выполнения.
Имя столбца |
Тип данных |
Описание |
---|---|---|
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 для сервера.
Примеры
А. Определение процента фоновых заданий, завершившихся неуспешно
В следующем примере возвращается процент фоновых заданий, завершившихся со сбоем, для всех выполненных запросов.
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
Б. Определение процента попыток постановки в очередь, завершившихся со сбоем
В следующем примере возвращается процент попыток постановки в очередь, завершившихся со сбоем, для всех выполненных запросов.
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