sys.dm_clr_loaded_assemblies (Transact-SQL)

Aplica-se a: SQL Server

Retorna uma linha para cada assembly de utilizador gerido carregado no espaço de endereçamento do servidor. Use esta visão para compreender e resolver problemas com a integração CLR com objetos de base de dados geridos que estão a correr no Microsoft SQL Server.

Assemblies são ficheiros DLL de código gerido que são usados para definir e implementar objetos de base de dados geridos no SQL Server. Sempre que um utilizador executa um destes objetos de base de dados geridas, o SQL Server e o CLR carregam o assembly (e as suas referências) onde o objeto de base de dados gerida está definido. O assembly permanece carregado no SQL Server para aumentar o desempenho, permitindo que os objetos de base de dados geridos contidos no assembly possam ser chamados no futuro sem ter de recarregar o assembly. O assembly não é descarregado até que o SQL Server esteja sob pressão de memória. Para mais informações sobre assemblies e integração CLR, consulte CLR Hosted Environment. Para mais informações sobre objetos de base de dados geridas, consulte Construção de Objetos de Base de Dados com Integração com Common Language Runtime (CLR).

Nome da coluna Tipo de dados Description
assembly_id int ID do conjunto carregado. A assembly_id pode ser usada para procurar mais informações sobre o assembly na vista de catálogo sys.assemblies (Transact-SQL). Note que o catálogo Transact-SQL sys.assemblies mostra apenas assemblies na base de dados atual. A vista sqs.dm_clr_loaded_assemblies mostra todos os assemblies carregados no servidor.
appdomain_address int Endereço do domínio de aplicação (AppDomain) onde o assembly é carregado. Todos os assemblies pertencentes a um único utilizador são sempre carregados no mesmo AppDomain. A appdomain_address pode ser usada para consultar mais informações sobre o AppDomain na vista sys.dm_clr_appdomains .
load_time datetime Tempo em que a montagem estava carregada. Note que o assembly permanece carregado até que o SQL Server esteja sob pressão de memória e descarregue o AppDomain. Podes monitorizar load_time para perceber com que frequência SQL Server fica sob pressão de memória e descarrega o AppDomain.

Permissions

Requer VIEW permissão de ESTADO DO SERVIDOR no servidor.

Permissões para SQL Server 2022 e posterior

Requer VIEW permissão ESTADO DE DESEMPENHO DO SERVIDOR no servidor.

Remarks

A vista dm_clr_loaded_assemblies.appdomain_address tem uma relação muitos-para-um com dm_clr_appdomains.appdomain_address. A visão dm_clr_loaded_assemblies.assembly_id tem uma relação de um-para-muitos com sys.assemblies.assembly_id.

Examples

O exemplo seguinte mostra como visualizar os detalhes de todas as assembleias na base de dados atual que estão atualmente carregadas.

 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;  

O exemplo seguinte mostra como visualizar detalhes do AppDomain em que um dado assembly é carregado.

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

Ver também

Vistas de Gestão Dinâmica Relacionadas com o Tempo de Execução da Common Language (Transact-SQL)