Fonctions et vues de gestion dynamique (Transact-SQL)

Les fonctions et vues de gestion dynamique renvoient des informations sur l'état du serveur, qu'il est possible d'utiliser pour surveiller l'état d'une instance du serveur, diagnostiquer des problèmes et régler les performances.

Important

Les fonctions et vues de gestion dynamique renvoient des données d'état internes propres à l'implémentation. Leurs schémas et les données qu'elles renvoient sont susceptibles de changer dans les versions ultérieures de SQL Server. Les fonctions et vues de gestion dynamique des futures versions ne seront donc peut-être pas compatibles avec celles de cette version. Par exemple, dans les versions ultérieures de SQL Server, Microsoft peut augmenter la définition de la vue de gestion dynamique en ajoutant des colonnes à la fin de la liste des colonnes. Nous déconseillons l'utilisation de la syntaxe SELECT * FROM dynamic_management_view_name dans le code de production car le nombre de colonnes retourné peut changer et altérer votre application.

Il existe deux types de fonctions et vues de gestion dynamique :

  • les fonctions et vues de gestion dynamique dont l'étendue est définie au niveau du serveur, qui nécessitent l'autorisation VIEW SERVER STATE sur le serveur ;

  • Les fonctions et vues de gestion dynamique dont l'étendue est définie au niveau de la base de données, qui nécessitent l'autorisation VIEW DATABASE STATE sur la base de données.

Interrogation des vues de gestion dynamique

Il est possible de référencer des vues de gestion dynamique dans des instructions Transact-SQL en utilisant des noms en deux, trois ou quatre parties. En revanche, il est possible de référencer les fonctions de gestion dynamique dans des instructions Transact-SQL en utilisant des noms en deux ou trois parties. Il n'est pas possible de référencer les fonctions et vues de gestion dynamique dans des instructions Transact-SQL en utilisant des noms en une seule partie.

Toutes les fonctions et vues de gestion dynamique existent dans le schéma sys et respectent la convention d'affectation de noms dm_*. Lorsque vous utilisez une fonction ou une vue de gestion dynamique, vous devez faire précéder le nom de la vue ou de la fonction du schéma sys. Par exemple, pour effectuer une requête dans la vue de gestion dynamique dm_os_wait_stats, exécutez :

SELECT wait_type, wait_time_ms

FROM sys.dm_os_wait_stats;

GO

Autorisations requises

Une requête sur une fonction ou une vue de gestion dynamique nécessite l'autorisation SELECT sur un objet et l'autorisation VIEW SERVER STATE ou VIEW DATABASE STATE. Cela permet de limiter sélectivement l'accès d'un utilisateur ou d'une connexion aux fonctions et vues de gestion dynamique. Pour cela, créez d'abord l'utilisateur dans master, puis refusez à cet utilisateur l'autorisation SELECT sur les fonctions et vues de gestion dynamique auxquelles vous souhaitez interdire l'accès. Après cela, l'utilisateur ne peut pas sélectionner ces fonctions et vues de gestion dynamique, quel que soit le contexte de la base de données de l'utilisateur.

Notes

Du fait que DENY est prioritaire, si un utilisateur a les autorisations VIEW SERVER STATE mais n'a pas l'autorisation VIEW DATABASE STATE, il peut visualiser des informations au niveau serveur, mais pas au niveau base de données.

Dans cette section

Les fonctions et vues de gestion dynamique sont organisées selon les catégories suivantes.