SQLCLR - это возможность запуска кода .NET в SQL Server.
Когда люди говорят о SQLCLR, они обычно имеют в виду возможность написания собственного кода .NET (хранимые процедуры, функции, триггеры, пользовательские типы и пользовательские агрегаты). В этом случае эту возможность можно включить и выключить с помощью опции сервера «clr enabled» внутри sp_configure
, и я считаю, что она называется «Интеграция CLR» в графическом интерфейсе настройки поверхности. Добавление функциональности .NET требует использования CREATE ASSEMBLY для загрузки скомпилированного кода .NET в SQL Server.
Тем не менее, даже если для параметра «clr enabled» задано значение « 0
/ off» / «disabled», функции CLR все еще используются для внутренних функций и некоторых встроенных функций и всегда будут присутствовать, если только «использовать волокна Windows» / » опция облегченного пулирования включена.
Чтобы получить очень подробное описание того, что такое SQLCLR, что нет, и что он может делать, см. Статью, которую я написал по этой теме, на SQL Server Central: Лестница к SQLCLR Уровень 1: Что такое SQLCLR? (для просмотра контента на этом сайте требуется бесплатная регистрация). Развернутая версия этой статьи доступна в следующем ответе StackOverflow: Когда нам нужна функция CLR в SQL Server? ,
Если вы хотите узнать, разрешает ли экземпляр добавлять собственный код .NET в базы данных, выполните следующее и проверьте поле «run_value»:
EXEC sp_configure 'clr enabled';
Что касается значения типа ожидания SQLCLR в Resource Monitor, см. Следующий пост в блоге:
Как это работает: что стоит за категорией ожидания SQLCLR в SQL Server 2008 Activity Monitor
и я считаю, что соответствующая строка (поскольку она относится к категории SQLCLR, которую вы просматриваете) из этого поста:
Я обнаружил, что некоторые из wait_types следует игнорировать, так как они ожидают ожидания.
SELECT * FROM sys.dm_os_wait_stats WHERE wait_type IN ('CLR_AUTO_EVENT', 'CLR_CRST', 'CLR_JOIN', 'CLR_MANUAL_EVENT', 'CLR_MEMORY_SPY', 'CLR_MONITOR', 'CLR_RWLOCK_READER', 'CLR_RWLOCK_WRITER', 'CLR_SEMAPHORE', 'CLR_TASK_START', 'CLRHOST_STATE_ACCESS', 'ASSEMBLY_LOAD', 'FS_GARBAGE_COLLECTOR_SHUTDOWN', 'SQLCLR_APPDOMAIN', 'SQLCLR_ASSEMBLY', 'SQLCLR_DEADLOCK_DETECTION', 'SQLCLR_QUANTUM_PUNISHMENT') ORDER BY wait_time_ms DESC, wait_type ASC;