sys.dm_exec_function_stats (Transact-SQL)
S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL DatabaseAzure SQL Managed Instance
Retourne des statistiques de performances agrégées pour les fonctions mises en cache. La vue retourne une ligne pour chaque plan de fonction mis en cache et la durée de vie de la ligne est tant que la fonction reste mise en cache. Lorsqu’une fonction est supprimée du cache, la ligne correspondante est supprimée de cette vue. À ce stade, un événement de trace SQL des statistiques de performances est déclenché comme sys.dm_exec_query_stats. Retourne des informations sur les fonctions scalaires, notamment les fonctions en mémoire et les fonctions scalaires CLR. Ne retourne pas d’informations sur les fonctions table et sur les fonctions scalaires insérées avec l’inlining UDF Scalar.
Dans Azure SQL Database, les vues de gestion dynamique ne peuvent pas exposer les informations susceptibles d’avoir un impact sur le contenu de la base de données ou d’exposer des informations sur 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.
Remarque
Les résultats de sys.dm_exec_function_stats peuvent varier avec chaque exécution, car les données reflètent uniquement les requêtes terminées, et non celles en cours d’exécution.
Nom de la colonne | Type de données | Description |
---|---|---|
database_id | int | ID de base de données dans lequel réside la fonction. Dans Azure SQL Database, les valeurs sont uniques au sein d’une base de données unique ou d’un pool élastique, mais pas dans un serveur logique. |
object_id | int | Numéro d’identification d’objet de la fonction. |
type | char(2) | Type de l’objet : FN = Fonctions valeur scalaires |
type_desc | nvarchar(60) | Description du type d’objet : SQL_SCALAR_FUNCTION |
sql_handle | varbinary(64) | Cela peut être utilisé pour mettre en corrélation les requêtes dans sys.dm_exec_query_stats exécutées à partir de cette fonction. |
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 . Sera toujours 0x000 lorsqu’une fonction compilée en mode natif interroge une table optimisée en mémoire. |
cached_time | datetime | Heure à laquelle la fonction a été ajoutée au cache. |
last_execution_time | datetime | Dernière fois que la fonction a été exécutée. |
execution_count | bigint | Nombre de fois où la fonction a été exécutée depuis sa dernière compilation. |
total_worker_time | bigint | Durée totale du processeur, en microsecondes, consommée par les exécutions de cette fonction depuis sa compilation. Pour les fonctions compilées en mode natif, total_worker_time peut ne pas être précise si de nombreuses exécutions prennent moins de 1 milliseconde. |
last_worker_time | bigint | Temps processeur, en microsecondes, qui a été consommé la dernière fois que la fonction a été exécutée. 1 |
min_worker_time | bigint | Temps processeur minimal, en microsecondes, que cette fonction a jamais consommée pendant une seule exécution. 1 |
max_worker_time | bigint | Durée maximale du processeur, en microsecondes, que cette fonction a jamais consommée pendant une seule exécution. 1 |
total_physical_reads | bigint | Nombre total de lectures physiques effectuées par les exécutions de cette fonction 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 la dernière fois que la fonction a été exécuté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 que cette fonction a jamais effectuées pendant 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 que cette fonction a jamais effectuées pendant 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 fonction depuis sa compilation. Sa valeur est toujours 0 lors de l'interrogation d'une table optimisée en mémoire. |
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 optimisée en mémoire. |
min_logical_writes | bigint | Nombre minimal d’écritures logiques que cette fonction a jamais effectuées pendant 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 que cette fonction a jamais effectuées pendant 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 fonction 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 la dernière fois que la fonction a été exécuté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 que cette fonction a jamais effectuées pendant 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 que cette fonction a jamais effectuées pendant 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 écoulé total, en microsecondes, pour les exécutions terminées de cette fonction. |
last_elapsed_time | bigint | Temps écoulé, en microsecondes, pour l’exécution la plus récente de cette fonction. |
min_elapsed_time | bigint | Temps écoulé minimal, en microsecondes, pour toute exécution terminée de cette fonction. |
max_elapsed_time | bigint | Durée maximale écoulée, en microsecondes, pour toute exécution terminée de cette fonction. |
total_page_server_reads | bigint | Nombre total de lectures de serveur de pages effectuées par les exécutions de cette fonction depuis sa compilation. S’applique à : Azure SQL Database Hyperscale. |
last_page_server_reads | bigint | Nombre de lectures de serveur de pages effectuées la dernière fois que la fonction a été exécutée. S’applique à : Azure SQL Database Hyperscale. |
min_page_server_reads | bigint | Nombre minimal de lectures du serveur de pages que cette fonction a jamais effectuées pendant une seule exécution. S’applique à : Azure SQL Database Hyperscale. |
max_page_server_reads | bigint | Nombre maximal de lectures de serveur de pages que cette fonction a jamais effectuées pendant une seule exécution. S’applique à : Azure SQL Database Hyperscale. |
Autorisations
Sur SQL Server et SQL Managed Instance, l’autorisation VIEW SERVER STATE
est requise.
Sur les objectifs de service SQL Database Basic, S0 et S1, et pour les bases de données dans des pools élastiques, le compte d’administrateur du serveur, le compte d’administrateur Microsoft Entra ou l’appartenance au ##MS_ServerStateReader##
rôle serveur est requis. Sur tous les autres objectifs de service SQL Database, l’autorisation VIEW DATABASE STATE
sur la base de données ou l’appartenance au rôle serveur ##MS_ServerStateReader##
est requise.
Autorisations pour SQL Server 2022 (et versions plus récentes)
Nécessite l’autorisation VIEW SERVER PERFORMANCE STATE sur le serveur.
Exemples
L’exemple suivant retourne des informations sur les dix principales fonctions identifiées par le temps écoulé moyen.
SELECT TOP 10 d.object_id, d.database_id, OBJECT_NAME(object_id, database_id) 'function 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_function_stats AS d
ORDER BY [total_worker_time] DESC;
Voir aussi
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)
sys.dm_exec_trigger_stats (Transact-SQL)
sys.dm_exec_procedure_stats (Transact-SQL)
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour