본 게시물은 개인적인 의견으로 작성되었으니 절대적인 정보가 아닐 수 있습니다. 참고만 하시고 궁금한 사항이 있으시면 연락주세요.

티스토리 뷰

SQL SERVER 2016부터 DBCC CHECKDB 의 옵션 중 MAXDOP 옵션이 추가 되었다.

좀더 자세히 말하면 SQL Server 2014 SP2 Ent부터 MAXDOP 옵션을 사용할 수 있다.

   

[SQL Server 2016 Enterprise LAB]

   

<설정 화면>

sp_configure 'max degree of parallelism'

   

#. max degree of parallelism 이 0 일때는 전체 스케즐러는 사용하게 된다.

세션 #.1

SET STATISTICS TIME ON

DBCC CHECKDB (AdventureWorks2014)

SET STATISTICS TIME OFF

   

   

세션 #.2

select Session_id , scheduler_id, parent_task_address, * from sys.dm_os_tasks

where session_id = 55

   

#. WITH MAXDOP 옵션

SET STATISTICS TIME ON

DBCC CHECKDB (AdventureWorks2014) WITH MAXDOP = 4; -- 세션창에서는 incorrect syntax 로 표기된다.

SET STATISTICS TIME OFF

   

   

   

   

#. max degree of parallelism = 2 로 변경하면

sp_configure 'max degree of parallelism', 2

reconfigure

   

   

2로 설정시 2개로만 수행된다.

   

WITH MAXDOP = 4; 옵션으로 수행되면 어떻게 될까?

max degree of parallelism 설정값을 무시한테 MAXDOP = 4이 우선시 된다.

   

   

[추가사항]

SQL Server 2014 SP2 버전 이전 까지는 아래와 같이 동작하였다.

Standard Edition 은 무조건 Sing-Thread 로 동작한다.

Enterprise 는 maximum degree of parallelism 옵션 개수에 따른 병렬 쓰레드로 동작한다.

maximum degree of parallelism = 2 일경우에 2개의 스케즐러로 병렬로 동작한다.

이때 Disabled 을 원할 경우에는 TF2528 를 추가하면 된다.

   

   

[참고문서]

https://msdn.microsoft.com/en-us/library/ms176064.aspx

   

DBCC CHECKDB

[ ( database_name | database_id | 0

[ , NOINDEX

| , { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ]

) ]

[ WITH

{

[ ALL_ERRORMSGS ]

[ , EXTENDED_LOGICAL_CHECKS ]

[ , NO_INFOMSGS ]

[ , TABLOCK ]

[ , ESTIMATEONLY ]

[ , { PHYSICAL_ONLY | DATA_PURITY } ]

[ , MAXDOP = number_of_processors ]

}

]

]

MAXDOP

Applies to: SQL Server 2014 SP2 through current version.

   

Overrides the max degree of parallelism configuration option of sp_configure for the statement. The MAXDOP can exceed the value configured with sp_configure. If MAXDOP exceeds the value configured with Resource Governor, the Database Engine uses the Resource Governor MAXDOP value, described in ALTER WORKLOAD GROUP (Transact-SQL). All semantic rules used with the max degree of parallelism configuration option are applicable when you use the MAXDOP query hint. For more information, see Configure the max degree of parallelism Server Configuration Option.

   

CAUTION!! If MAXDOP is set to zero then the server chooses the max degree of parallelism.

   

   

   

댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday