MAXDOP 설정

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

MAXDOP 은 하나 이상의 프로세서 또는 CPU가 있는 컴퓨터에서 각 쿼리에 대한 단일 문을 실행하는데 병렬 실행 계획에 사용할 수 있는 프로세서 수 이다.

 

그렇다면 MAXDOP은 어디에서 사용할까? 정답은 없다. 환경에 따라 다르며 시스템의 특성에 따라 다르다.

 

MAXDOP의 기본값은 0 (모든 프로세서 사용)이며 다음의 설정을 통하여 MAXDOP 값을 변경 할 수 있다.

 

Sp_configure 명령어는 현재의 값을 확인 할 수 있다. (기본값 0)

 

 

Sp_configure 명령어를 통하여 병렬처리에 사용되는 프로세서 수를 제한 하자. 변경 후 즉시 적용 되므로 SQL 서비스를 재시작 하지 않아도 된다.

실습에서는 MAXDOP의 값을 2로 수정 하였다.

SP_CONFIGURE 'MAX DEGREE OF PARALLELISM', 2

GO

 

RECONFIGURE WITH OVERRIDE

GO

 

SP_CONFIGURE

GO

 

 

 

서버 속성에서는 [고급] - [최대 병렬 처리 수준]의 값을 수정하여 확인을 하면 된다.

 

MAXDOP 쿼리 힌트

병렬로 처리되는 해당 쿼리문에 힌트를 추가 하여 사용한다. 이 힌트를 사용하면 sp_configure 및 리소스 관리자의 최대 병렬 처리 수준 구성 옵션을 무시한다. MAXDOP 힌트는 sp_configure로 구성한 값을 초과할 수 있다.

 

[MAXDOP 값 설명]

설명

0

서버가 시스템 작업에 따라 사용되는 CPU의 수를 결정.

1

직렬로 수행.

2- ??

지정된 값으로 프로세서 수를 제한. 작업에 따라 지정된 수보다 적은 프로세서 사용될 수도 있음. 사용 가능한 CPU 수보다 더 큰 수를 지정하면 사용 가능한 실제 CPU 수가 사용 됨.

 

  • 병렬처리 최대 값은 SQL Server 버전, CPU 종류 및 운영체제에 따라 달라진다.
  • Affinity mask 옵션을 기본값으로 설정하지 않으면 SMP(대칭적 다중 처리) 시스템에서 SQL Server에 사용 가능한 프로세서 수가 제한 될 수도 있다.

 

참고 링크 : http://msdn.microsoft.com/ko-kr/library/ms181007(v=sql.100).aspx

 

2012-12-27 / 강성욱 / http://sqlmvp.kr

 

+ Recent posts