Vues et fonctions de gestion dynamique du système

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison d’analytique SQL dans Microsoft FabricEntrepôt dans Microsoft FabricBase de données SQL dans Microsoft Fabric

Les objets de gestion dynamique incluent les vues de gestion dynamique (DMV) et les fonctions de gestion dynamique (DMF). Ces objets renvoient des informations sur l’état du serveur que vous pouvez utiliser pour surveiller la santé d’une instance serveur, diagnostiquer des problèmes et ajuster les performances.

Les objets de gestion dynamique sont soit à portée de serveur , soit à portée de base de données.

Requête des objets de gestion dynamique

Tous les objets de gestion dynamique existent dans le sys schéma et suivent la convention dm_*de nommage .

Lorsque vous utilisez un objet de gestion dynamique, vous devez préfixer le nom de l’objet en utilisant le sys schéma. Par exemple, pour interroger la dm_os_wait_stats vue de gestion dynamique, lancez la requête suivante :

SELECT wait_type,
       wait_time_ms
FROM sys.dm_os_wait_stats;

Le tableau suivant décrit comment référencer les objets de gestion dynamique dans Transact-SQL :

Référence T-SQL Vue de gestion dynamique Fonction de gestion dynamique
Dénomination en une seule partie Non Non
Dénomination en deux parties Oui Oui
Dénomination en trois parties Oui Oui
Dénomination en quatre parties Oui Non

Remarques

Les objets de gestion dynamique renvoient des données d’état internes, spécifiques à chaque implémentation. Leurs schémas et les données qu’ils renvoyent pourraient évoluer lors des prochaines versions du Moteur de base de données. Par conséquent, les objets de gestion dynamique dans les futures versions pourraient ne pas être compatibles avec les objets de gestion dynamique de cette version.

Par exemple, dans les futures versions du Moteur de base de données, Microsoft pourrait enrichir la définition de toute vue de gestion dynamique en ajoutant des colonnes à la fin de la liste de colonnes. N’utilisez pas la syntaxe SELECT * FROM dynamic_management_view_name dans le code de production car le nombre de colonnes retournées pourrait changer et casser votre application.

Permissions

Interroger un objet de gestion dynamique nécessite SELECT une autorisation sur l'objet, et dépend de la portée de l'objet et de la version du Moteur de base de données SQL Server :

Version Portée du serveur Étendue de la base de données
SQL Server 2019 (15.x) et versions antérieures VIEW SERVER STATE VIEW DATABASE STATE
SQL Server 2022 (16.x) et versions ultérieures VIEW SERVER PERFORMANCE STATE, ou VIEW SERVER SECURITY STATE pour les objets liés à la sécurité VIEW DATABASE PERFORMANCE STATE, ou VIEW DATABASE SECURITY STATE pour les objets liés à la sécurité

Pour restreindre l’accès de façon sélective, créez l’utilisateur ou connectez-vous master , puis refusez cette permission SELECT sur les vues ou fonctions de gestion dynamique spécifiques que vous souhaitez bloquer. L’utilisateur ne peut pas sélectionner parmi ces objets par la suite, quel que soit le contexte de la base de données.

Note

DENY est prioritaire par rapport à GRANT. Par exemple, un utilisateur accordé VIEW SERVER PERFORMANCE STATE mais refusé VIEW DATABASE PERFORMANCE STATE peut voir des informations au niveau serveur mais pas des informations au niveau de la base de données.