Partilhar via


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