Compartir a través de


sys.dm_exec_background_job_queue_stats (Transact-SQL)

Devuelve una fila que proporciona estadísticas acumuladas para cada trabajo del procesador de consultas enviado para ejecución asincrónica (en segundo plano).

Nombre de columna

Tipo de datos

Descripción

queue_max_len

int

Longitud máxima de la cola.

enqueued_count

int

Número de solicitudes registradas correctamente en la cola.

started_count

int

Número de solicitudes que han iniciado la ejecución.

ended_count

int

Número de solicitudes a las que se ha dado servicio como correctas o erróneas.

failed_lock_count

int

Número de solicitudes que han generado errores a causa de contención de bloqueos o interbloqueos.

failed_other_count

int

Número de solicitudes que han generado errores a causa de otras razones.

failed_giveup_count

int

Número de solicitudes que han generado errores porque se ha alcanzado el límite de reintentos.

enqueue_failed_full_count

int

Número de intentos de poner en cola erróneos porque la cola está llena.

enqueue_failed_duplicate_count

int

Número de intentos de poner en cola duplicados.

elapsed_avg_ms

int

Tiempo promedio transcurrido por solicitud en milisegundos.

elapsed_max_ms

int

Tiempo transcurrido de la solicitud más grande en milisegundos.

Comentarios

Esta vista devuelve información solo para los trabajos de estadísticas de actualización asincrónica. Para obtener más información acerca de las estadísticas de actualización asincrónica, vea Estadísticas.

Permisos

Requiere el permiso VIEW SERVER STATE en el servidor.

Ejemplos

A.Determinar el porcentaje de trabajos en segundo plano que no han podido completarse

En el ejemplo siguiente se devuelve el porcentaje de trabajos en segundo plano que no han podido completarse para todas las consultas ejecutadas.

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.Determinar el porcentaje de intentos de poner en cola que no han tenido éxito

En el ejemplo siguiente se devuelve el porcentaje de intentos de poner en cola que no han tenido éxito para todas las consultas ejecutadas.

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

Vea también

Referencia

Funciones y vistas de administración dinámica (Transact-SQL)

Funciones y vistas de administración dinámica relacionadas con ejecuciones (Transact-SQL)