sys.dm_clr_loaded_assemblies (Transact-SQL)

適用対象:SQL Server

サーバー のアドレス空間に読み込まれた各マネージド ユーザー アセンブリの行を返します。 このビューを使用して、Microsoft SQL Server で実行されている CLR 統合マネージド データベース オブジェクトを理解し、トラブルシューティングします。

アセンブリは、マネージド データベース オブジェクトを定義してSQL Serverにデプロイするために使用されるマネージ コード DLL ファイルです。 ユーザーがこれらのマネージド データベース オブジェクトのいずれかを実行するたびに、SQL Serverし、CLR によって、マネージド データベース オブジェクトが定義されているアセンブリ (およびその参照) が読み込まれます。 パフォーマンスを向上させるために、アセンブリはSQL Serverに読み込まれたままになります。そのため、アセンブリに含まれるマネージド データベース オブジェクトは、アセンブリを再読み込みする必要があるため、将来的に呼び出すことができます。 SQL Serverがメモリ不足になるまで、アセンブリはアンロードされません。 アセンブリと CLR 統合の詳細については、「 CLR ホスト環境」を参照してください。 マネージド データベース オブジェクトの詳細については、「 共通言語ランタイム (CLR) 統合を使用したデータベース オブジェクトの構築」を参照してください。

列名 データ型 説明
assembly_id int 読み込まれたアセンブリの ID。 assembly_idを使用すると、sys.assemblies (Transact-SQL) カタログ ビューでアセンブリに関する詳細情報を検索できます。 Transact-SQL sys.assemblies カタログには、現在のデータベース内のアセンブリのみが表示されることに注意してください。 sqs.dm_clr_loaded_assemblies ビューには、サーバーに読み込まれたすべてのアセンブリが表示されます。
appdomain_address int アセンブリが読み込まれるアプリケーション ドメイン (AppDomain) のアドレス。 1 人のユーザーが所有するすべてのアセンブリは、常に同じ 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);  

参照

共通言語ランタイム関連の動的管理ビュー (Transact-SQL)