Поделиться через


sys.dm_clr_loaded_assemblies (Transact-SQL)

Область применения: SQL Server

Возвращает по строке для каждой из управляемых пользовательских сборок, загруженных в адресное пространство сервера. Используйте это представление для понимания и устранения неполадок объектов управляемой базы данных среды CLR, выполняемых в Microsoft SQL Server.

Сборки — это файлы DLL кода, используемые для определения и развертывания объектов управляемой базы данных в SQL Server. Каждый раз, когда пользователь выполняет один из этих объектов управляемой базы данных, SQL Server и CLR загружают сборку (и ее ссылки), в которой определяется управляемый объект базы данных. Сборка остается загруженной в SQL Server для повышения производительности, чтобы управляемые объекты базы данных, содержащиеся в сборке, могли быть вызваны в будущем с необходимостью перезагрузить сборку. Сборка не выгружается, пока SQL Server не попадает под давление памяти. Дополнительные сведения о сборках и интеграции среды CLR см. в разделе CLR Hosted Environment. Дополнительные сведения об управляемых объектах базы данных см. в разделе "Создание объектов базы данных с интеграцией среды CLR".

Имя столбца Тип данных Description
assembly_id int Идентификатор загруженной сборки. Assembly_id можно использовать для поиска дополнительных сведений о сборке в представлении каталога sys.assemblys (Transact-SQL). Обратите внимание, что каталог sys.assemblies Transact-SQL отображает сборки только в текущей базе данных. В представлении sqs.dm_clr_loaded_assemblies показаны все загруженные сборки на сервере.
appdomain_address int Адрес домена приложения (AppDomain), в котором загружается сборка. Все сборки, принадлежащие одному пользователю, всегда загружаются в один домен приложения. Appdomain_address можно использовать для поиска дополнительных сведений о домене приложения в представлении sys.dm_clr_appdomains.
load_time datetime Время, когда сборка была загружена. Обратите внимание, что сборка остается загруженной, пока SQL Server не находится под давлением памяти и выгрузит домен приложения. Вы можете отслеживать load_time , чтобы понять, насколько часто SQL Server попадает под давление памяти и выгружает домен приложения.

Разрешения

необходимо разрешение 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;  

В следующем примере показано, как просмотреть сведения о домене приложения, в котором загружается данная сборка.

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

См. также

Связанные динамические административные представления среды cl language (Transact-SQL)