sys.dm_clr_loaded_assemblies (Transact-SQL)

適用於:SQL Server

針對載入至伺服器位址空間的每個 Managed 使用者元件,傳回一個資料列。 使用此檢視來瞭解並針對在 Microsoft SQL Server 中執行的 CLR 整合受控資料庫物件進行疑難排解。

元件是 Managed 程式碼 DLL 檔案,可用來在 SQL Server 中定義及部署 Managed 資料庫物件。 每當使用者執行其中一個 Managed 資料庫物件時,SQL Server 和 CLR 就會載入定義 Managed 資料庫物件的元件(及其參考)。 元件會保留在 SQL Server 中以提升效能,因此未來可以呼叫元件中包含的 Managed 資料庫物件,而不需要重載元件。 除非 SQL Server 承受記憶體壓力,否則不會卸載元件。 如需元件和 CLR 整合的詳細資訊,請參閱 CLR 裝載環境 。 如需 Managed 資料庫物件的詳細資訊,請參閱 使用 Common Language Runtime (CLR) 整合 建置資料庫物件。

資料行名稱 資料類型 描述
assembly_id int 載入的元件識別碼。 assembly_id 可用來查閱 sys.assemblies (Transact-SQL) 目錄檢視中 元件的詳細資訊。 請注意,Transact-SQL sys.assemblies 目錄只會顯示目前資料庫中的元件。 sqs.dm_clr_loaded_assemblies 檢視會顯示伺服器上所有載入的元件。
appdomain_address int 載入元件的應用程式域 ( AppDomain ) 位址。 單一使用者所擁有的所有元件一律會載入相同的 AppDomain appdomain_address 可用來在sys.dm_clr_appdomains 檢視中 查閱 AppDomain 的詳細資訊
load_time datetime 載入元件的時間。 請注意,元件會繼續載入,直到 SQL Server 面臨記憶體壓力並卸載 AppDomain 為止。 您可以監視 load_time ,以瞭解 SQL Server 在記憶體壓力下的頻率,並卸載 AppDomain

權限

需要伺服器上的 VIEW SERVER STATE 許可權。

SQL Server 2022 和更新版本的權限

需要伺服器上的 VIEW SERVER PERFORMANCE STATE 權限。

備註

dm_clr_loaded_assemblies.appdomain_address 檢視與 dm_clr_appdomains.appdomain_address 具有多對一關聯性 dm_clr_loaded_assemblies.assembly_id 檢視與 sys.assemblies.assembly_id 具有一對多關聯 性。

範例

下列範例示範如何檢視目前已載入之目前資料庫中所有元件的詳細資料。

 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;  

下列範例示範如何檢視載入指定元件之 AppDomain 的詳細資料。

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

另請參閱

Common Language Runtime 相關動態管理檢視 (Transact-SQL)