MSSQL 2005 Express 에디션의 제약 조건

2008. 12. 23. 16:56Database

출처: http://nice19.net/blog/index.php/archives/105

MSSQL 2005 Express 에디션의 제약 조건

2008년 07월 30일 수요일, 오후 6시 01분

1. 들어가기 앞서…


Microsoft SQL Server 2005 Express 에디션! (이하 MSSQL 2005 Express) Microsoft 제품군에서 찾아보기 힘든 아주 바람직하고 착한(?) 라이센스를 가지고 있는 제품이다. 모든 최대한 잘게 쪼개고 그럴싸하게 모아서 새로운 에디션을 하나 더 만들어 팔길 좋아하는 Microsoft에서 무슨 바람이 불어 MSSQL 2005 Express 에디션을 발표했는지 지금 생각해봐도 의문점 투성이다.

아무튼 제작사 측에서 어마어마한 MSSQL 라이센스 비용을 절감할 수 있는 절호의 기회를 제공해 주었으니 사용자 입장에서는 잘 써주는 게 인지상정 아니겠는가. 물론, 발표한지 꽤나 시간이 흐른 제품이기 때문에 이미 여러모로 잘 사용하고 계신 분들이 많을 거라 추정된다.

본 글에서는 MSSQL 2005 Express 에디션의 제약 조건에 대해서 살펴볼까 한다.


2-1. 우선 MS에서 공식적으로 제공하고 있는 에디션 별 제약 조건부터…


아래 링크 주소를 따라가 보면 Microsoft 측에서 공식적으로 제공하고 있는 Microsoft SQL Server 2005 에디션 별 제약 조건을 한눈에 파악할 수 있다. 우선 이것부터 한 번 훑어보는게 좋지 않을까? 물론 영어의 압박이 좀 있기 하지만, 이해 자체에 큰 문제가 발생할 만큼 어렵지 않다.

http://www.microsoft.com/sql/prodinfo/features/compare-features.mspx


2-2. 전체텍스트검색 불가?!


전체텍스트검색’은 내가 알기로 Windows NT 4.0 때 인덱스 서비스(기억이 가물가물…)라는 이름으로 처음 사용자들에게 공개된 것으로 알고 있다. 그만큼 도입된 지 꽤 오래된 기능이라 할 수 있다.

‘전체텍스트검색’의 용도를 간단히 예를 들어 설명해 보자면 다음과 같다.

‘A’라는 게시판에 본문 검색 기능이 탑재되어 있다. 그리고 사용자가 ‘윈도우’라는 단어로 본문 검색을 시도했다면 아래와 같거나 또는 유사한 쿼리가 SQL 서버에 결과값을 요청하게 될 것이다.

SELECT * FROM aboard WHERE contents LIKE ‘%윈도우%’ ORDER BY idx DESC

DB 양이 얼마 되지 않는다면 처리하는데 큰 문제가 없겠지만, 글 수가 몇 십, 백만 건 또는 그 이상이라면 분명 SQL 서버는 큰 부하를 겪게 될 것이다. ‘aboard’ 테이블의 ‘contents’ 컬럼에서 ‘윈도우’라는 단어로 전체 검색을 해야 하기 때문입니다.

‘전체텍스트검색’은 바로 이런 부분들을 효율적으로 관리하기 위해 마련된 기능이라 할 수 있다. 쉽게 정리하자면 특정 테이블의 특정 컬럼에서 미리 단어들를 추출 및 정리해 놓았다가 위의 예 처럼 본문 검색 기능 등에 적용하여 유용하게 사용하는 것이다.

물론 MS-SQL 엔진 자체 내에도 인덱스라는 기능이 있다. 하지만, ‘전체텍스트검색’과는 성질이 다소 다르다고 할 수 있다. ‘전체텍스트검색’은 엄연히 MS-SQL 엔진 범주에 포함된 부분이지만, ‘전체텍스트검색’의 데이터라 할 수 있는 카탈로그와 자체 인덱스의 관리는 MS-SQL 엔진이 아닌 윈도우즈 파일시스템을 사용하고 있기 때문이다. 그리고 SQL 인덱스와는 달리 ‘전체텍스트검색’의 인덱스는 수동으로 갱신해 주어야 한다. 이때 발생하는 엄청난 I/O 부하는 여전히 해결해야 할 난제로 알고 있다.

아무튼 기본적으로 MSSQL 2005 Express 에디션은 '전체텍스트검색'을 지원하지 않는다.

하지만!!!

'Microsoft SQL Server 2005 Express Edition with Advanced Services SP2' 이녀석을 설치하면 '전체텍스트검색' 기능을 사용할 수 있다. '전체텍스트검색'이 일반적으로 자주 사용되는 기능은 아니지만 이왕이면 새옹지마라고…

다운로드 경로는 아래 링크 주소를 참고하시기 바란다.

http://www.microsoft.com/downloads/details.aspx?FamilyID=5b5528b9-13e1-4db9-a3fc-82116d598c3d&DisplayLang=ko


2-3. 다중 프로세서 지원 불가


다중 프로세서란 쿼드코어나 듀얼코어 CPU처럼 CPU 하나에 여러 개의 코어가 탑재된 것을 의미하는 것이 아니라 말 그대로 물리적으로 CPU가 2개 이상 장착되어 있는 것을 의미한다.

MSSQL 2005 Express 에디션은 다중 프로세서를 지원하지 않는다. 물론, 다중 프로세서가 장착된 서버에서 설치 또는 실행 자체가 되지 않는 것은 아니다.


2-4. 할당 메모리 1GB로 제한


MSSQL 2005 Express 에디션은 SQL Server에 할당할 수 있는 메모리 용량이 1GB로 제한되어 있다.

2-5. 데이터베이스 당 최대 용량 4GB로 제한


MSSQL 2005 Express 에디션에서는 1개의 데이터베이스가 사용할 수 있는 최대 용량이 4GB로 제한되어 있다.

유의할 사항은 순수 DATA 용량만을 가지고 계산하는 것이기 때문에 4GB 용량 제한에는 트랜젝션로그 용량은 포함되지 않는다. 아울러 데이터베이스 개수에는 별도의 제한 사항이 없다.


2-6. DTS 및 SSIS 사용 불가


MSSQL 2005에서 가장 주목 받는 부분 중 하나가 바로 MSSQL 2000보다 향상된 데이터 내보내기/가져오기(DTS) 기능이다. 아쉽게도 현재 MSSQL 2005 Express 에디션에서는 이 DTS 기능을 비롯한 SSIS 자체를 공식적으로 지원하지 않는다.

SSIS란, SQL Server Integration Services의 약자로써 쉽게 말하자면 DTS의 강화판이라 할 수 있다. MSSQL 2000에서도 타 기종 간의 데이타 이전이나 외부 SQL 서버에 보존된 데이타 가져오기 또는 반대로 데이터 내보내기 기능등은 어느 정도 수준까지 지원했으나 SSIS에서는 이 기능을 좀 더 강화하여 따로 독립된 서비스로 분류하고, 플로우(Flow) 자체를 엔진화 했다.

이런 좋은 기능을 MSSQL 2005 Express 에디션에서는 공식적으로 지원하지 않는다는 것이 매우 안타까울 다름이다. 하지만, 그보다 서버 이전이나 차후에 발생할 수 있는 상황들을 고려해 봤을 때 DTS 기능을 사용할 수 없다는 것은 참으로 난감한 일이 아닐 수 없다.

일단, 'Microsoft SQL Server 2005 Express Edition Toolkit SP2'를 설치하면 DTS 기능을 사용할 수 있다. 다운로드 경로는 아래 링크 주소를 참고하시기 바란다.

http://www.microsoft.com/downloads/details.aspx?FamilyID=e8ad606a-0960-4efd-8bd7-b21370c7be2b&DisplayLang=ko

설치가 완료되었다면 '설치폴더\90\DTS\Binn\DTSWizard.exe'파일을 수동으로 실행시켜 필요시마다 DTS 기능을 사용할 수 있다.