sys.dm_clr_loaded_assemblies (Transact-SQL)
適用於:SQL Server
針對載入至伺服器位址空間的每個 Managed 使用者元件,傳回一個數據列。 使用此檢視來了解並針對在 SQL Server Microsoft 中執行的 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);