Index create memory 설정
- Version : SQL Server 2005, 2008, 2008R2, 2012
분할된 테이블 및 인덱스를 사용할 때 분할된 인덱스가 정렬되지 않고 병렬처리 수준이 높은 경우 인덱스를 만드는데 필요한 최소 요구 메모리가 증가할 수 있다.
인덱스 생성 메모리 옵션은 인덱스를 만들기 위해 처음으로 할당되는 최대 메모리 양을 제어한다. 이 옵션의 기본값은 0(동적 할당)이다. 인덱스 생성시 설정 값을 초과하는 메모리가 필요할 경우 여유 메모리가 있으면 초과하여 사용하며 여유 메모리가 없을 경우에는 이미 할당된 메모리를 계속 사용하여 인덱스를 생성한다.
Index create memory 옵션에 따라 단일 인덱스 생성 작업에서 모든 인덱스 파티션에 할당된 초기 총 메모리양이 결정 된다. 이 옵션의 값은 SQL Server가 실행중인 서버의 실제 메모리를 초과할 수 없으며 32비트 운영체제에서 실행 값은 3GB 미만이다.
인덱스 생성 메모리 설정을 쿼리 최소 메모리보다 적게 설정한 경우 설정은 가능하지만 경고 메시지가 나타나면서 쿼리가 종료 된다.
- Min memory per query 설정 : http://sqlmvp.kr/140202912237
해당 옵션은 수정 후 서비스를 재시작 할 필요가 없다.
[SSMS 설정]
개체 탐색기에서 서버를 선택하고 마우스 오른쪽을 클릭하여 [속성]을 선택 한다.
[메모리] 탭에서 기타 메모리 옵션에서 [인덱스 생성 메모리]를 수정한다.
[T-SQL 설정]
아래 스크립트는 sp_configure 를 사용하여 인덱스 생성 메모리를 4096(KB) 으로 변경하는 예제이다.
EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXEC sp_configure 'index create memory', 4096 GO RECONFIGURE; GO |
현재 시스템에 특별히 문제가 없다면 기본값을 사용하고 이 옵션에 대한 이해도가 충분하고 시스템 특성에 따라 필요할 경우 옵션을 변경하여 사용할 수 있도록 한다.
[참고자료]
http://technet.microsoft.com/ko-kr/library/ms180967.aspx
강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp