cost threshold for parallelism 옵션

cost threshold for parallelism 옵션을 사용하여 Microsoft SQL Server가 쿼리에 대한 병렬 계획을 만들고 실행할 임계값을 지정할 수 있습니다. SQL Server는 동일한 쿼리에 대해 직렬 계획을 실행하는 데 드는 예상 비용이 cost threshold for parallelism에 설정된 값보다 높은 경우에만 해당 쿼리에 대한 병렬 계획을 만들고 실행합니다. 이 비용은 특정 하드웨어 구성에서 직렬 계획을 실행하는 데 필요한 예상 경과 시간(초)을 참조합니다. cost threshold for parallelism은 대칭적 다중 프로세서에서만 설정해야 합니다.

쿼리가 길면 일반적으로 병렬 계획을 사용하는 것이 좋습니다. 성능 이점이 병렬 계획의 초기화, 동기화 및 종료에 추가적으로 시간이 걸리는 단점을 상쇄합니다. 길거나 짧은 쿼리를 혼합하여 실행할 때는 cost threshold for parallelism 옵션이 사용됩니다. 쿼리가 짧으면 직렬 계획을 실행하고 쿼리가 길면 병렬 계획을 사용합니다. cost threshold for parallelism의 값은 어떤 쿼리가 짧은 것으로 간주되는지와 이에 따라 해당 쿼리가 직렬 계획을 사용하여 실행되어야 하는지 결정합니다.

경우에 따라 쿼리 비용 계획이 현재 cost threshold for parallelism 값보다 작아도 병렬 계획을 선택할 수 있습니다. 이는 먼저 제공되는 비용 평가에 따라 병렬 계획 또는 직렬 계획을 사용할 것인지를 결정해야 전체 최적화가 완료되기 때문입니다.

cost threshold for parallelism 옵션은 0에서 32767 사이의 모든 값으로 설정할 수 있으며 기본값은 5입니다.

SQL Server에서는 다음 조건에서 cost threshold for parallelism 값을 무시합니다.

  • 컴퓨터에 프로세서가 하나만 있습니다.

  • affinity mask 구성 옵션 때문에 SQL Server에 단일 CPU만 사용할 수 있습니다.

  • max degree of parallelism 옵션이 1로 설정되어 있습니다.

    [!참고]

    MAXDOP 쿼리 옵션을 사용하면 SQL Server에서 cost-threshold-for-parallelism 값을 무시하지 않습니다.

cost threshold for parallelism 옵션은 고급 옵션입니다. sp_configure 시스템 저장 프로시저를 사용하여 설정을 변경하면 show advanced options를 1로 설정할 때만 cost threshold for parallelism을 변경할 수 있습니다. 이 설정은 서버를 다시 시작하지 않아도 즉시 적용됩니다.

다음 예에서는 병렬 처리에 대한 비용 임계값을 10초로 설정합니다.

sp_configure 'show advanced options', 1;

GO

reconfigure;

GO

sp_configure 'cost threshold for parallelism', 10;

GO

reconfigure;

GO