sys.dm_clr_loaded_assemblies (Transact-SQL)

platí pro:SQL Server

Vrací řádek pro každé spravované uživatelské asemblování načtené do adresního prostoru serveru. Použijte tento pohled k pochopení a řešení problémů s CLR integrovanými řízenými databázovými objekty, které se spouštějí v Microsoft SQL Server.

Assemblies jsou spravované DLL soubory kódu, které se používají k definování a nasazení spravovaných databázových objektů v SQL Server. Kdykoli uživatel spustí jeden z těchto spravovaných databázových objektů, SQL Server a CLR načtou assembler (a jeho reference), ve kterém je objekt spravované databáze definován. Assembler zůstává načtený v SQL Server, aby se zvýšil výkon, takže spravované databázové objekty obsažené v assembleru lze v budoucnu volat bez nutnosti znovu načítání assembleru. Assembler není načítán, dokud SQL Server nezačne být pod tlakem paměti. Pro více informací o assemblech a integraci CLR viz CLR Hosted Environment. Pro více informací o objektech spravované databáze viz Building Database Objects with Common Language Runtime (CLR) Integration.

Název sloupce Datový typ Description
assembly_id int ID naložené sestavy. assembly_id lze použít k vyhledání dalších informací o assembleru v katalogu sys.assemblies (Transact-SQL). Všimněte si, že katalog sys.assemblies Transact-SQL zobrazuje assemblies pouze v aktuální databázi. Zobrazení sqs.dm_clr_loaded_assemblies zobrazuje všechny načtené sestavy na serveru.
appdomain_address int Adresa aplikační domény (AppDomain), ve které je assembler načítán. Všechny sestavy vlastněné jedním uživatelem jsou vždy načteny ve stejné AppDomain. appdomain_address lze použít k vyhledání dalších informací o AppDomain v zobrazení sys.dm_clr_appdomains.
load_time datetime Čas, kdy byla sestava naložena. Všimněte si, že assembler zůstává načtený, dokud není SQL Server pod tlakem paměti a AppDomain se neodpojí. Můžete sledovat load_time, abyste pochopili, jak často SQL Server pod tlakem paměti a uvolňuje AppDomain.

Povolení

Vyžaduje VIEW oprávnění SERVER STATE na serveru.

Oprávnění pro SQL Server 2022 a novější

Vyžaduje VIEW oprávnění SERVER PERFORMANCE STATE na serveru.

Poznámky

Pohled dm_clr_loaded_assemblies.appdomain_address má vztah mnoho-na-jednoho s dm_clr_appdomains.appdomain_address. Pohled dm_clr_loaded_assemblies.assembly_id má vztah jedna-to-mnoho s sys.assemblies.assembly_id.

Examples

Následující příklad ukazuje, jak zobrazit detaily všech sestav v aktuální databázi, které jsou právě načteny.

 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;  

Následující příklad ukazuje, jak zobrazit detaily AppDomain , ve kterém je daná sestava načtena.

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