Partager via


sys.dm_exec_background_job_queue_stats (Transact-SQL)

Retourne une ligne qui fournit des statistiques agrégées pour chaque travail du processeur de requêtes soumis pour une exécution asynchrone (en arrière-plan).

Nom de colonne

Type de données

Description

queue_max_len

int

Longueur maximale de la file d'attente.

enqueued_count

int

Nombre de demandes placées dans la file d'attente.

started_count

int

Nombre de demandes dont l'exécution a commencé.

ended_count

int

Nombre de demandes dont l'exécution s'est terminée sur un succès ou un échec.

failed_lock_count

int

Nombre de demandes ayant échoué à cause d'un problème de contention de verrouillage ou de blocage.

failed_other_count

int

Nombre de demandes ayant échoué pour d'autres raisons.

failed_giveup_count

int

Nombre de demandes ayant échoué parce que le nombre limite de tentatives était atteint.

enqueue_failed_full_count

int

Nombre de tentatives de mise en file d'attente ayant échoué parce que la file d'attente était saturée.

enqueue_failed_duplicate_count

int

Nombre de tentatives de mise en file d'attente en double.

elapsed_avg_ms

int

Temps moyen écoulé par demande en millisecondes.

elapsed_max_ms

int

Temps écoulé pour la demande la plus longue, en millisecondes.

Notes

Seules les informations pour les travaux de mise à jour des statistiques asynchrone apparaissent dans cette vue. Pour plus d'informations sur des statistiques de mise à jour asynchrone, consultez Utilisation des statistiques pour améliorer les performances des requêtes.

Autorisations

L'autorisation VIEW SERVER STATE est nécessaire sur le serveur.

Exemples

A. Détermination du pourcentage des travaux d'arrière-plan ayant échoué

L'exemple suivant retourne le pourcentage de travaux d'arrière-plan ayant échoué pour toutes les requêtes exécutées.

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. Détermination du pourcentage des tentatives de mise en file d'attente ayant échoué

L'exemple suivant retourne le pourcentage des tentatives de mise en file d'attente ayant échoué pour toutes les requêtes exécutées.

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