2009/03/05 01:11
SQL Server 2005는 .NET Framework와 통합되어있다. .NET 언어를 통해 저장 프로시저나 트리거, 함수 등을 만들어 사용할 수 있으며, 이는 .NET Framework에서 제공하는 방대한 클래스 라이브러리를 사용할 수 있음을 의미한다. 이러한 CLR 통합 프로그래밍은 기존의 T-SQL에 비해 표준화된 환경에서 효율적인 프로그래밍을 할 수 있도록 해줍니다.
그렇다고 .NET 코드로 작성하는 것이 무조건 더 좋다는 뜻은 아니다. 일반적으로 단순 데이터 접근을 위한 코드라면 기존의 T-SQL이 더 유리하다. 다만 복잡하고 전문적인 연산처리가 필요하다면 .NET 코드로 작성하는 충분히 고려해 볼 가치가 있다는 것이다. 또한 SQL Server 외부 자원에 대한 접근이 필요할 때에도 .NET 코드가 유리하다.
MSDN에서는 CLR 통합에 따른 장점으로 다음을 예로 들고 있다.

clr enabled 옵션을 변경하기 위해서 다음과 같이 두 가지 방법을 사용할 수 있다.
1. sp_configure를 사용하는 방법
쿼리 실행창에 다음 쿼리를 실행 시킨다.
clr enabled 옵션을 1에서 0으로 변경할 경우 작성한 어셈블리는 모두 unload 된다.
2. SQL Server 노출 영역 구성 툴을 이용하는 방법
'Microsoft SQL Server 2005' 프로그램 그룹에 '구성 도구'라는 폴더를 보면 'SQL Server 노출 영역 구성'이라는 프로그램이 보일 것이다. 이를 실행시키면 다음과 같은 화면을 볼 수 있다.

하단 '기능에 대한 노출 영역 구성'을 선택하면 다음과 같음 화면을 볼 수 있다.
CLR 통합 항목을 선택하고 CLR 통합 사용 항목을 체크하고 확인을 누른 후 프로그램을 종료한다.
* 비스타 사용자의 경우 사용자 로그인 오류 메시지가 뜰 수도 있다. 이럴 경우 관리자 권한으로 실행해 보자.
그렇다고 .NET 코드로 작성하는 것이 무조건 더 좋다는 뜻은 아니다. 일반적으로 단순 데이터 접근을 위한 코드라면 기존의 T-SQL이 더 유리하다. 다만 복잡하고 전문적인 연산처리가 필요하다면 .NET 코드로 작성하는 충분히 고려해 볼 가치가 있다는 것이다. 또한 SQL Server 외부 자원에 대한 접근이 필요할 때에도 .NET 코드가 유리하다.
MSDN에서는 CLR 통합에 따른 장점으로 다음을 예로 들고 있다.
- 개선된 프로그래밍 모델
- 개선된 안전성 및 보안
- 데이터 형식 및 집계 함수를 정의하는 기능
- 표준화된 환경을 통한 효율적인 개발
- 성능 및 확장성 개선 가능성
* 통합된 CLR의 성능에 대한 자세한 내용은 MSDN을 참조하자.
SQL Server 2005에서 이러한 CLR 통합 환경을 사용하기 위해서 CLR 통합 사용 속성(clr enabled 옵션)을 활성화 해 줘야 하는데, 보안상의 이유로 CLR 통합 사용이 기본적으로 비활성화 되어있기 때문이란다.
* 만약 다음과 같은 오류 메시지를 접하게 된다면 clr enabled 옵션을 확인 해 볼 필요가 있다.
clr enabled 옵션을 변경하기 위해서 다음과 같이 두 가지 방법을 사용할 수 있다.
1. sp_configure를 사용하는 방법
쿼리 실행창에 다음 쿼리를 실행 시킨다.
sp_configure 'clr enable', 1 go reconfigure go
clr enabled 옵션을 1에서 0으로 변경할 경우 작성한 어셈블리는 모두 unload 된다.
2. SQL Server 노출 영역 구성 툴을 이용하는 방법
'Microsoft SQL Server 2005' 프로그램 그룹에 '구성 도구'라는 폴더를 보면 'SQL Server 노출 영역 구성'이라는 프로그램이 보일 것이다. 이를 실행시키면 다음과 같은 화면을 볼 수 있다.
하단 '기능에 대한 노출 영역 구성'을 선택하면 다음과 같음 화면을 볼 수 있다.
CLR 통합 항목을 선택하고 CLR 통합 사용 항목을 체크하고 확인을 누른 후 프로그램을 종료한다.
* 비스타 사용자의 경우 사용자 로그인 오류 메시지가 뜰 수도 있다. 이럴 경우 관리자 권한으로 실행해 보자.
TAG CLR,
clr enabled,
SQL Server 2005,
SQLCLR
