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ées 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ée, SQL Server et le 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 sans avoir à recharger l’assembly. L’assembly n’est pas déchargé tant que SQL Server n’est pas soumis à une pression de mémoire. Pour plus d’informations sur les assemblys et l’intégration du CLR, consultez CLR Hosted Environment. Pour plus d’informations sur les objets de base de données managées, consultez Génération d’objets de base de données avec l’intégration clr (Common Language Runtime).

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.assemblies (Transact-SQL). Notez que le catalogue sys.assemblies Transact-SQL affiche les assemblys dans la base de données active uniquement. 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 subit 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 ultérieures

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 de l’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 CLR (Common Language Runtime) (Transact-SQL)