sys.dm_clr_loaded_assemblies (Transact-SQL)
Restituisce una riga per ogni assembly gestito dall'utente nello spazio degli indirizzi del server. Utilizzare questa vista per identificare gli oggetti del database gestito dell'integrazione con CLR che sono in esecuzione in MicrosoftSQL Server, nonché risolvere i problemi relativi a tali oggetti.
Gli assembly sono costituiti da file DLL di codice gestito utilizzati per definire e distribuire gli oggetti di un database gestito in SQL Server. Ogni volta che un utente esegue uno di questi oggetti del database gestito, SQL Server e il CLR caricano l'assembly in cui l'oggetto del database gestito viene definito e i relativi riferimenti. L'assembly rimane caricato in SQL Server per migliorare le prestazioni. In seguito sarà infatti possibile chiamare gli oggetti del database gestito contenuti nell'assembly senza che sia necessario ricaricare l'assembly. L'assembly non viene scaricato finché la quantità di memoria in SQL Server non risulta insufficiente. Per ulteriori informazioni sugli assembly e l'integrazione con CLR, vedere Ambiente CLR. Per ulteriori informazioni sugli oggetti del database gestito, vedere Generazione di oggetti di database con l'integrazione con CLR (Common Language Runtime).
Nome colonna |
Tipo di dati |
Descrizione |
---|---|---|
assembly_id |
int |
ID dell'assembly caricato. La colonna assembly_id può essere utilizzata per cercare ulteriori informazioni sull'assembly nella vista del catalogo sys.assemblies (Transact-SQL). Si noti che il catalogo Transact-SQLsys.assemblies include solo gli assembly del database corrente. La vista sqs.dm_clr_loaded_assemblies include tutti gli assembly caricati nel server. |
appdomain_address |
int |
Indirizzo del dominio applicazione (AppDomain) in cui viene caricato l'assembly. Tutti gli assembly di proprietà di un singolo utente vengono sempre caricati nello stesso AppDomain. La colonna appdomain_address può essere utilizzata per cercare ulteriori informazioni su AppDomain nella vista sys.dm_clr_appdomains. |
load_time |
datetime |
Ora di caricamento dell'assembly. Si noti che l'assembly rimane caricato finché la quantità di memoria in SQL Server non risulta insufficiente e AppDomain viene scaricato. È possibile monitorare la colonna load_time per comprendere con che frequenza la quantità di memoria in SQL Server risulta insufficiente e AppDomain viene scaricato. |
Autorizzazioni
È richiesta l'autorizzazione VIEW SERVER STATE nel server.
Osservazioni
La vista dm_clr_loaded_assemblies.appdomain_address dispone di una relazione molti-a-uno con dm_clr_appdomains.appdomain_address. La vista dm_clr_loaded_assemblies.assembly_id dispone di una relazione uno-a-molti con sys.assemblies.assembly_id.
Esempi
Nell'esempio seguente viene illustrato come visualizzare dettagli relativi a tutti gli assembly del database corrente che sono attualmente caricati.
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
Nell'esempio seguente viene illustrato come visualizzare dettagli relativi all'AppDomain in cui è caricato un determinato assembly.
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)
Vedere anche