답변:
SQLCLR은 SQL Server 내에서 .NET 코드를 실행하는 기능입니다.
사람들이 SQLCLR에 대해 말할 때는 일반적으로 사용자 지정 .NET 코드 (저장 프로 시저, 함수, 트리거, 사용자 정의 형식 및 사용자 정의 집계)를 작성하는 기능을 말합니다. 이 경우이 기능은에서 "clr enabled"의 서버 옵션을 통해 켜고 끌 수 있으며 sp_configure
노출 영역 구성 GUI에서 "CLR 통합"이라고합니다. .NET 기능을 추가하려면 CREATE ASSEMBLY 를 사용하여 컴파일 된 .NET 코드를 SQL Server에로드 해야합니다 .
그러나 "clr enabled"옵션을 0
/ "off"/ "disabled"로 설정하더라도 CLR 기능은 여전히 내부 기능 및 일부 내장 기능에 사용되며 "Windows 섬유 사용"/ " 경량 풀링 "옵션이 활성화되었습니다.
SQLCLR이 무엇인지, 그렇지 않은지, 수행 할 수있는 작업에 대한 자세한 설명은 SQL Server Central : SQLCLR의 계단 수준 1 에서이 항목에 대해 쓴 기사를 참조하십시오. SQLCLR이란 무엇입니까? 해당 사이트의 컨텐츠를 보려면 무료 등록이 필요합니다. 이 기사의 잘린 버전은 다음 StackOverflow 답변에서 볼 수 있습니다. SQL Server에서 언제 CLR 기능이 필요합니까? .
인스턴스에서 사용자 지정 .NET 코드를 데이터베이스에 추가 할 수 있는지 여부를 확인하려면 다음을 실행하고 "run_value"필드를 확인하십시오.
EXEC sp_configure 'clr enabled';
리소스 모니터에서 SQLCLR 대기 유형 의 의미와 관련 하여 다음 블로그 게시물을 참조하십시오.
작동 방식 : SQL Server 2008 활동 모니터에서 SQLCLR 대기 범주 뒤에있는 것
그리고 그 게시물의 관련 줄 (보고있는 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;