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 di database gestito dell'integrazione con CLR che sono in esecuzione in Microsoft SQL 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 database gestito in SQL Server. Ogni volta che un utente esegue uno di questi oggetti di database gestito, SQL Server e il CLR caricano l'assembly in cui l'oggetto di 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 di 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 di database gestito, vedere Compilazione di oggetti di database con l'integrazione con CLR (Common Language Runtime).
Si applica a: SQL Server (da SQL Server 2008 a versione corrente). |
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-SQL sys.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 AS a
WHERE appdomain_address =
(SELECT appdomain_address
FROM sys.dm_clr_loaded_assemblies
WHERE assembly_id = 555);
Vedere anche
Riferimento
Viste a gestione dinamica relative a CLR (Common Language Runtime) (Transact-SQL)