sys.dm_exec_background_job_queue_stats (Transact-SQL)
Retorna uma linha que fornece estatísticas agregadas para cada trabalho de processador de consulta enviada para execução assíncrona (em segundo plano).
Nome da coluna |
Tipo de dados |
Descrição |
---|---|---|
queue_max_len |
int |
Comprimento máximo da fila. |
enqueued_count |
int |
Número de solicitações postadas à fila com êxito. |
started_count |
int |
Número de solicitações que iniciaram a execução. |
ended_count |
int |
Número de solicitações atendidas com êxito ou falha. |
failed_lock_count |
int |
Número de solicitações que falharam devido a contenção de bloqueios ou deadlock. |
failed_other_count |
int |
Número de solicitações que falharam devido a outras razões. |
failed_giveup_count |
int |
Número de solicitações que falharam porque o limite de novas tentativas foi atingido. |
enqueue_failed_full_count |
int |
Número de tentativas de enfileiramento que falharam devido a fila cheia. |
enqueue_failed_duplicate_count |
int |
Número de tentativas de enfileiramento duplicadas. |
elapsed_avg_ms |
int |
Tempo médio de solicitação decorrido, em milissegundos. |
elapsed_max_ms |
int |
Tempo decorrido da solicitação mais longa, em milissegundos. |
Comentários
Esta exibição só retorna informações para trabalhos de estatísticas de atualizações assíncronas. Para obter mais informações sobre estatísticas de atualizações assíncronas, consulte Usando estatísticas para melhorar o desempenho de consultas.
Permissões
Requer a permissão VIEW SERVER STATE no servidor.
Exemplos
A. Determinando a porcentagem de trabalhos em segundo plano que falharam
O exemplo a seguir retorna a porcentagem de trabalhos em segundo plano que falharam em todas as consultas executadas.
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. Determinando a porcentagem de tentativas de enfileiramento que falharam
O exemplo a seguir retorna a porcentagem de tentativas de enfileiramento que falharam em todas as consultas executadas.
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