Partager via


sys.dm_exec_procedure_stats (Transact-SQL)

Retourne les statistiques sur les performances des agrégats pour les procédures stockées mises en cache. La vue retourne une ligne pour chaque plan de procédure stockée mise en cache et la durée de vie de la ligne correspond à celle pendant laquelle la procédure stockée reste mise en cache. Lorsqu'une procédure stockée est supprimée du cache, la ligne correspondante est éliminée de cette vue. Un événement de trace SQL de statistiques de performances similaire à sys.dm_exec_query_stats est alors déclenché.

Dans Base de données SQL Windows Azure, les vues de gestion dynamique ne peuvent pas exposer des informations qui ont un impact sur la relation contenant-contenu de la base de données, ou exposer des informations concernant d'autres bases de données auxquelles l'utilisateur a accès. Pour éviter d'exposer ces informations, chaque ligne contenant des données qui n'appartient pas au locataire connecté est filtrée.

Notes

Une requête initiale de sys.dm_exec_procedure_stats peut produire des résultats inexacts si une charge de travail est actuellement exécutée sur le serveur.Des résultats plus précis peuvent être déterminés en réexécutant la requête.

S'applique à : SQL Server (SQL Server 2008 jusqu'à la version actuelle), Base de données SQL Windows Azure (version initiale jusqu'à la version actuelle).

Nom de la colonne

Type de données

Description

database_id

int

ID de base de données dans lequel réside la procédure stockée.

object_id

int

Numéro d'identification d'objet de la procédure stockée.

type

char(2)

Type de l'objet :

P = Procédure stockée SQL

PC = Procédure stockée d'assembly (CLR)

X = Procédure stockée étendue

type_desc

nvarchar(60)

Description du type d'objet :

SQL_STORED_PROCEDURE

CLR_STORED_PROCEDURE

EXTENDED_STORED_PROCEDURE

sql_handle

varbinary(64)

Cette valeur peut être utilisée pour établir une corrélation avec des requêtes de sys.dm_exec_query_stats qui ont été exécutées à partir de cette procédure stockée.

plan_handle

varbinary(64)

Identificateur du plan en mémoire. Cet identificateur est temporaire et il reste constant uniquement tant que le plan est dans le cache. Cette valeur peut être utilisée avec la vue de gestion dynamique sys.dm_exec_cached_plans.

Sa valeur est toujours 0x000 lorsqu'une procédure stockée compilée en mode natif interroge une table mémoire optimisée.

cached_time

datetime

Heure à laquelle la procédure stockée a été ajoutée au cache.

last_execution_time

datetime

Heure de dernière exécution de la procédure stockée.

execution_count

bigint

Nombre d'exécutions de la procédure stockée depuis sa dernière compilation.

total_worker_time

bigint

Temps processeur total, en microsecondes, consommé par les exécutions de cette procédure stockée depuis sa compilation.

Pour les procédures stockées compilées en mode natif, total_worker_time peut être inexact si plusieurs exécutions sont réalisées en moins d'une milliseconde.

last_worker_time

bigint

Temps processeur, en microsecondes, consommé lors de la dernière exécution de la procédure stockée. 1

min_worker_time

bigint

Temps processeur minimal, en microsecondes, consommé par cette procédure stockée lors d'une seule exécution. 1

max_worker_time

bigint

Temps processeur maximal, en microsecondes, consommé par cette procédure stockée lors d'une seule exécution. 1

total_physical_reads

bigint

Nombre total de lectures physiques effectuées par les exécutions de cette procédure stockée depuis sa compilation.

Sa valeur est toujours 0 lors de l'interrogation d'une table mémoire optimisée.

last_physical_reads

bigint

Nombre de lectures physiques effectuées lors de la dernière exécution de la procédure stockée.

Sa valeur est toujours 0 lors de l'interrogation d'une table mémoire optimisée.

min_physical_reads

bigint

Nombre minimal de lectures physiques effectuées par cette procédure stockée lors d'une seule exécution.

Sa valeur est toujours 0 lors de l'interrogation d'une table mémoire optimisée.

max_physical_reads

bigint

Nombre maximal de lectures physiques effectuées par cette procédure stockée lors d'une seule exécution.

Sa valeur est toujours 0 lors de l'interrogation d'une table mémoire optimisée.

total_logical_writes

bigint

Nombre total d'écritures logiques effectuées par les exécutions de cette procédure stockée depuis sa compilation.

Sa valeur est toujours 0 lors de l'interrogation d'une table mémoire optimisée.

last_logical_writes

bigint

Numéro du nombre de pages du pool de mémoires tampons modifiées lors de la dernière exécution du plan. Si une page est déjà modifiée, aucune écriture n'est comptée.

Sa valeur est toujours 0 lors de l'interrogation d'une table mémoire optimisée.

min_logical_writes

bigint

Nombre minimal d'écritures logiques effectuées par cette procédure stockée lors d'une seule exécution.

Sa valeur est toujours 0 lors de l'interrogation d'une table mémoire optimisée.

max_logical_writes

bigint

Nombre maximal d'écritures logiques effectuées par cette procédure stockée lors d'une seule exécution.

Sa valeur est toujours 0 lors de l'interrogation d'une table mémoire optimisée.

total_logical_reads

bigint

Nombre total de lectures logiques effectuées par les exécutions de cette procédure stockée depuis sa compilation.

Sa valeur est toujours 0 lors de l'interrogation d'une table mémoire optimisée.

last_logical_reads

bigint

Nombre de lectures logiques effectuées lors de la dernière exécution de la procédure stockée.

Sa valeur est toujours 0 lors de l'interrogation d'une table mémoire optimisée.

min_logical_reads

bigint

Nombre minimal de lectures logiques effectuées par cette procédure stockée lors d'une seule exécution.

Sa valeur est toujours 0 lors de l'interrogation d'une table mémoire optimisée.

max_logical_reads

bigint

Nombre maximal de lectures logiques effectuées par cette procédure stockée lors d'une seule exécution.

Sa valeur est toujours 0 lors de l'interrogation d'une table mémoire optimisée.

total_elapsed_time

bigint

Temps total écoulé, en microsecondes, pour les exécutions de cette procédure stockée.

last_elapsed_time

bigint

Temps écoulé, en microsecondes, pour la dernière exécution de cette procédure stockée.

min_elapsed_time

bigint

Temps minimal écoulé, en microsecondes, pour les différentes exécutions de cette procédure stockée.

max_elapsed_time

bigint

Temps maximal écoulé, en microsecondes, pour les différentes exécutions de cette procédure stockée.

1 Pour les procédures stockées compilées en mode natif avec collection de statistiques activée, le temps de travail est collecté en millisecondes. Si la requête s'exécute en moins d'une milliseconde, la valeur est 0.

Autorisations

Nécessite l'autorisation VIEW SERVER STATE sur le serveur.

Notes

Les statistiques de la vue sont mises à jour lorsqu'une exécution de procédure stockée se termine.

Exemples

L'exemple suivant retourne des informations sur les dix principales procédures stockées identifiées d'après le temps moyen écoulé.

SELECT TOP 10 d.object_id, d.database_id, OBJECT_NAME(object_id, database_id) 'proc name', 
    d.cached_time, d.last_execution_time, d.total_elapsed_time,
    d.total_elapsed_time/d.execution_count AS [avg_elapsed_time],
    d.last_elapsed_time, d.execution_count
FROM sys.dm_exec_procedure_stats AS d
ORDER BY [total_worker_time] DESC;

Voir aussi

Référence

Fonctions et vues de gestion dynamique relatives à l'exécution (Transact-SQL)

sys.dm_exec_sql_text (Transact-SQL)

sys.dm_exec_query_stats (Transact-SQL)

Fonctions et vues de gestion dynamique (Transact-SQL)

sys.dm_exec_trigger_stats (Transact-SQL)