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)의 주소입니다. 단일 사용자가 소유한 모든 어셈블리는 항상 동일한 AppDomain에 로드됩니다. appdomain_address 사용하여 sys.dm_clr_appdomains 보기에서 AppDomain에 대한 자세한 정보를 조회할 수 있습니다. |
load_time | 날짜/시간 | 어셈블리가 로드된 시간입니다. 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);