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)