sys.dm_clr_loaded_assemblies (Transact-SQL)
S'applique à : SQL Server
Retourne une ligne pour chaque assembly d'utilisateur géré chargé dans l'espace d'adressage du serveur. Utilisez cette vue pour comprendre et résoudre les problèmes liés aux objets de base de données managés d’intégration CLR qui s’exécutent dans Microsoft SQL Server.
Les assemblys sont des fichiers DLL de code managé utilisés pour définir et déployer des objets de base de données managés dans SQL Server. Chaque fois qu’un utilisateur exécute l’un de ces objets de base de données managés, SQL Server et clR chargent l’assembly (et ses références) dans lequel l’objet de base de données managé est défini. L’assembly reste chargé dans SQL Server pour augmenter les performances, afin que les objets de base de données managés contenus dans l’assembly puissent être appelés à l’avenir avec la possibilité de recharger l’assembly. L’assembly n’est pas déchargé tant que SQL Server n’est pas sous pression mémoire. Pour plus d’informations sur les assemblys et l’intégration clR, consultez CLR Hosted Environment. Pour plus d’informations sur les objets de base de données managés, consultez Building Database Objects with Common Language Runtime (CLR) Integration.
Nom de la colonne | Type de données | Description |
---|---|---|
assembly_id | int | ID de l'assembly chargé. Le assembly_id peut être utilisé pour rechercher plus d’informations sur l’assembly dans l’affichage catalogue Sys.assemblys (Transact-SQL). Notez que le catalogue Transact-SQL sys.assemblys affiche uniquement les assemblys dans la base de données active. La vue sqs.dm_clr_loaded_assemblies affiche tous les assemblys chargés sur le serveur. |
appdomain_address | int | Adresse du domaine d’application (AppDomain) dans lequel l’assembly est chargé. Tous les assemblys appartenant à un seul utilisateur sont toujours chargés dans le même AppDomain. Le appdomain_address peut être utilisé pour rechercher plus d’informations sur appDomain dans la vue sys.dm_clr_appdomains. |
load_time | datetime | Heure à laquelle l'assembly a été chargé. Notez que l’assembly reste chargé jusqu’à ce que SQL Server soit sous pression mémoire et décharge l’AppDomain. Vous pouvez surveiller load_time pour comprendre la fréquence à laquelle SQL Server est soumis à une pression de mémoire et décharge l’AppDomain. |
autorisations
requièrent l'autorisation VIEW SERVER STATE sur le serveur.
Autorisations pour SQL Server 2022 (et versions plus récentes)
Nécessite l’autorisation VIEW SERVER PERFORMANCE STATE sur le serveur.
Notes
La vue dm_clr_loaded_assemblies.appdomain_address a une relation plusieurs-à-un avec dm_clr_appdomains.appdomain_address. La vue dm_clr_loaded_assemblies.assembly_id a une relation un-à-plusieurs avec sys.assemblies.assembly_id.
Exemples
L'exemple suivant montre comment afficher les détails de tous les assemblys de la base de données active qui sont chargés.
SELECT a.name, a.assembly_id, a.permission_set_desc, a.is_visible, a.create_date, l.load_time
FROM sys.dm_clr_loaded_assemblies AS l
INNER JOIN sys.assemblies AS a
ON l.assembly_id = a.assembly_id;
L’exemple suivant montre comment afficher les détails du AppDomain dans lequel un assembly donné est chargé.
SELECT appdomain_id, creation_time, db_id, user_id, state
FROM sys.dm_clr_appdomains AS a
WHERE appdomain_address =
(SELECT appdomain_address
FROM sys.dm_clr_loaded_assemblies
WHERE assembly_id = 555);
Voir aussi
Vues de gestion dynamique liées au Common Language Runtime (Transact-SQL)