sys.dm_clr_loaded_assemblies (Transact-SQL)

Van toepassing op:SQL Server

Geeft een rij terug voor elke beheerde gebruikersassemblage die in de serveradresruimte wordt geladen. Gebruik deze weergave om CLR-integratie beheerde databaseobjecten die uitvoeren in Microsoft SQL Server te begrijpen en te troubleshooten.

Assemblies zijn managed code DLL-bestanden die worden gebruikt om beheerde databaseobjecten te definiëren en te implementeren in SQL Server. Telkens wanneer een gebruiker een van deze beheerde databaseobjecten uitvoert, laden SQL Server en de CLR de assembly (en de referenties daarvan) waarin het beheerde databaseobject is gedefinieerd. De assembly blijft geladen in SQL Server om de prestaties te verbeteren, zodat de beheerde databaseobjecten in de assembly in de toekomst kunnen worden aangeroepen zonder de assembly opnieuw te hoeven laden. De assembly wordt pas ontladen als SQL Server onder geheugendruk komt. Voor meer informatie over assemblies en CLR-integratie, zie CLR Hosted Environment. Voor meer informatie over beheerde databaseobjecten, zie Building Database Objects with Common Language Runtime (CLR) Integration.

Kolomnaam Gegevenstype Description
assembly_id int ID van de geladen assemblage. De assembly_id kan worden gebruikt om meer informatie over de assembly op te zoeken in de sys.assemblies (Transact-SQL) catalogusweergave. Let op dat de catalogus van de Transact-SQL sys.assemblies alleen assemblies in de huidige database toont. De sqs.dm_clr_loaded_assemblies-weergave toont alle geladen assemblies op de server.
appdomain_address int Adres van het applicatiedomein (AppDomain) waarin de assembly wordt geladen. Alle assemblies die eigendom zijn van één gebruiker worden altijd geladen in hetzelfde AppDomain. De appdomain_address kan worden gebruikt om meer informatie over het AppDomain op te zoeken in de sys.dm_clr_appdomains weergave.
load_time datetime Tijd toen de assemblage geladen was. Let op dat de assembly geladen blijft totdat SQL Server onder geheugendruk staat en de AppDomain leegt. Je kunt load_time monitoren om te begrijpen hoe vaak SQL Server onder geheugendruk komt en de AppDomain leegmaakt.

Permissions

Vereist VIEW SERVER-STATUS-toestemming op de server.

Machtigingen voor SQL Server 2022 en hoger

Vereist VIEW SERVER PERFORMANCE STATE toestemming op de server.

Remarks

De weergave dm_clr_loaded_assemblies.appdomain_address heeft een veel-op-één relatie met dm_clr_appdomains.appdomain_address. De dm_clr_loaded_assemblies.assembly_id-weergave heeft een één-op-veel relatie met sys.assemblies.assembly_id.

Examples

Het volgende voorbeeld laat zien hoe je details kunt bekijken van alle assemblies in de huidige database die momenteel geladen zijn.

 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;  

Het volgende voorbeeld laat zien hoe je details van het AppDomain kunt bekijken waarin een bepaalde assembly wordt geladen.

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);  

Zie ook

Dynamische beheersweergaven gerelateerd aan de uitvoering van de Common Language (Transact-SQL)