sys.dm_exec_procedure_stats (Transact-SQL)

S’applique à : ouiSQL Server (toutes les versions prises en charge) OuiAzure SQL Database OuiAzure SQL Managed Instance ouiAzure Synapse Analytics ouiParallel Data Warehouse

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 Azure SQL Database, 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 qui contient des données qui n’appartiennent pas au locataire connecté est filtrée.

Notes

Les résultats de sys.dm_exec_procedure_stats peuvent varier en fonction de chaque exécution, car les données reflètent uniquement les requêtes terminées, et non celles toujours en cours. Pour appeler cette valeur à partir de Azure Synapse Analytics ou Analytics Platform System (PDW) , utilisez le nom sys.dm_pdw_nodes_exec_procedure_stats . Cette syntaxe n’est pas prise en charge par le pool SQL serverless dans Azure Synapse Analytics.

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) Cela peut être utilisé pour établir une corrélation avec des requêtes dans 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 optimisée en mémoire.
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 de fois où la procédure stockée a été exécuté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 optimisée en mémoire.
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 optimisée en mémoire.
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 optimisée en mémoire.
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 optimisée en mémoire.
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 optimisée en mémoire.
last_logical_writes bigint 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 optimisée en mémoire.
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 optimisée en mémoire.
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 optimisée en mémoire.
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 optimisée en mémoire.
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 optimisée en mémoire.
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 optimisée en mémoire.
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 optimisée en mémoire.
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 toutes les exécutions de cette procédure stockée.
max_elapsed_time bigint Temps maximal écoulé, en microsecondes, pour toutes les exécutions de cette procédure stockée.
total_spills bigint Nombre total de pages vidées par l’exécution de cette procédure stockée depuis sa compilation.

S’applique à: à partir de SQL Server 2017 (14.x) CU3
last_spills bigint Nombre de pages débordées lors de la dernière exécution de la procédure stockée.

S’applique à: à partir de SQL Server 2017 (14.x) CU3
min_spills bigint Nombre minimal de pages que cette procédure stockée a déjà renversées lors d’une seule exécution.

S’applique à: à partir de SQL Server 2017 (14.x) CU3
max_spills bigint Nombre maximal de pages que cette procédure stockée a déjà débordées lors d’une seule exécution.

S’applique à: à partir de SQL Server 2017 (14.x) CU3
pdw_node_id int Identificateur du nœud sur lequel cette distribution se trouve.

S’applique à: Azure Synapse Analytics , Analytics Platform System (PDW)
total_page_server_reads bigint Nombre total de lectures du serveur de pages effectuées par les exécutions de cette procédure stockée depuis sa compilation.

s’applique à: Azure SQL Database hyperscale
last_page_server_reads bigint Nombre de lectures du serveur de pages effectuées lors de la dernière exécution de la procédure stockée.

s’applique à: Azure SQL Database hyperscale
min_page_server_reads bigint Nombre minimal de lectures du serveur de pages effectuées par cette procédure stockée lors d’une seule exécution.

s’applique à: Azure SQL Database hyperscale
max_page_server_reads bigint Nombre maximal de lectures du serveur de pages effectuées par cette procédure stockée lors d’une seule exécution.

s’applique à: Azure SQL Database hyperscale

1 pour les procédures stockées compilées en mode natif lorsque la collecte de statistiques est 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

sur SQL Server et SQL Managed Instance, requiert l' VIEW SERVER STATE autorisation.

sur SQL Database objectifs de service de base, S0 et S1 , et pour les bases de données dans des pools élastiques, le compte d' administrateur de serveur , le compte d' administrateur Azure Active Directory ou l’appartenance au ##MS_ServerStateReader## rôle de serveur est requis. pour tous les autres SQL Database objectifs de service, l' VIEW DATABASE STATE autorisation sur la base de données ou l’appartenance au ##MS_ServerStateReader## rôle de serveur est requise.

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

fonctions et vues de gestion dynamique liées à l’exécution (Transact-SQL)
sys.dm_exec_sql_text (Transact-SQL)
sys.dm_exec_query_plan (Transact-SQL)
sys.dm_exec_query_stats (Transact-SQL)
sys.dm_exec_trigger_stats (Transact-SQL)
sys.dm_exec_cached_plans (Transact-SQL)