sys.dm_clr_loaded_assemblies (Transact-SQL)

S’applique à : SQL Server (toutes les versions prises en charge)

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é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 avec un rechargement de l’assembly. L’assembly n’est pas déchargé tant que SQL Server n’est pas soumis à une sollicitation de la 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é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.assemblies (Transact-SQL). Notez que le catalogue Transact-SQL sys.assemblies affiche uniquement les assemblys de 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 le Domaine d’application. Vous pouvez surveiller load_time pour comprendre la fréquence à laquelle SQL Server est soumis à une sollicitation de la mémoire et décharge le Domaine d’application.

Autorisations

requièrent l'autorisation VIEW SERVER STATE sur le serveur.

Remarques

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 Domaine d’application 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)