sys.dm_clr_loaded_assemblies (Transact-SQL)

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 objets de base de données managés d'intégration CLR qui sont en cours d'exécution dans Microsoft SQL Server.

Les assemblys sont des fichiers DLL de code managé qui sont utilisés pour définir et déployer des objets de base de données managés dans SQL Server. Dès lors qu'un utilisateur exécute un de ces objets de base de données managés, 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, de sorte que les objets de base de données managés contenus dans l'assembly puissent être appelés ultérieurement, sans avoir à recharger l'assembly. L'assembly n'est pas déchargé tant que SQL Server ne présente pas une mémoire insuffisante. Pour plus d'informations sur les assemblys et l'intégration CLR, consultez Environnement hébergé CLR. Pour plus d'informations sur les objets de base de données managés, consultez Génération d'objets de base de données à l'aide de l'intégration du CLR (Common Language Runtime).

Nom de colonne

Type de données

Description

assembly_id

int

ID de l'assembly chargé. La colonne assembly_id peut être utilisée pour rechercher davantage d'informations sur l'assembly dans l'affichage catalogue sys.assemblies (Transact-SQL). Notez que l'affichage catalogue Transact-SQLsys.assemblies montre les assemblys uniquement 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) où est chargé l'assembly. Tous les assemblys appartenant à un seul utilisateur sont toujours chargés dans le même domaine d'application AppDomain. La colonne appdomain_address peut être utilisée pour rechercher davantage d'informations sur le domaine d'application AppDomain dans la vue sys.dm_clr_appdomains.

load_time

datetime

Heure à laquelle l'assembly a été chargé. Notez que l'assembly reste chargé tant que SQL Server ne présente pas une mémoire insuffisante et ne décharge pas le domaine d'application AppDomain. Vous pouvez analyser load_time pour comprendre à quelle fréquence SQL Server présente une mémoire insuffisante et décharge le domaine d'application AppDomain.

Autorisations

Nécessite l'autorisation VIEW SERVER 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 domaine d'application AppDomain dans lequel un assembly donné est chargé.

select appdomain_id, creation_time, db_id, user_id, state
from sys.dm_clr_appdomains a
where appdomain_address = 
(select appdomain_address 
 from sys.dm_clr_loaded_assemblies
 where assembly_id = 555)