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