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


sys.dm_clr_loaded_assemblies (Transact-SQL)

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

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

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Имя столбца

Тип данных

Описание

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) может быть использован для поиска дополнительной информации о домене приложения AppDomain в представлении sys.dm_clr_appdomains.

load_time

datetime

Время, когда сборка была загружена. Обратите внимание, что сборка остается загруженной до тех пор, пока у SQL Server не возникнет необходимость в памяти и он не выгрузит домен приложений. Наблюдая за параметром load_time, можно узнать, как часто у SQL Server возникает необходимость в памяти с последующей выгрузкой домена приложений.

Разрешения

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

См. также

Справочник

Динамические административные представления, связанные со средой CLR (Transact-SQL)