다음을 통해 공유


서버 구성: 병렬 처리에 대한 비용 임계값

적용 대상:SQL ServerAzure SQL Managed Instance

이 문서에서는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server에서 서버 구성 옵션을 구성하는 cost threshold for parallelism 방법을 설명합니다.

병렬 처리에 대한 비용 임계값 정보

cost threshold for parallelism 옵션은 SQL Server가 둘 이상의 논리 프로세서가 있는 컴퓨터에서 병렬 계획을 고려하는 임계값을 지정합니다. 이 cost threshold for parallelism 옵션은 0에서 32,767까지의 모든 값으로 설정할 수 있습니다.

비용은 쿼리 계획(예: CPU 및 I/O)의 예상 운영자 비용 합계입니다. 계획 선택에만 사용되는 상대 측정값입니다. 실제 런타임은 측정하지 않습니다.

특정 Transact-SQL 구성 요소는 병렬 계획을 억제할 수 있습니다. 예를 들어, UDF(비선형 스칼라 사용자 정의 함수), 테이블 변수 수정 및 특정 시스템 호출이 있습니다. SQL Server는 최상의 직렬 계획의 예상 비용이 값을 초과하는 cost threshold for parallelism 경우에만 병렬 대안을 평가한 다음 더 저렴한 병렬 계획을 선택할 수 있습니다.

제한 사항

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

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

  • 구성 옵션으로 인해 단일 논리 프로세서만 SQL Server에서 affinity mask 사용할 수 있습니다.

  • max degree of parallelism 서버 구성 옵션이 .로 설정됩니다1.

권장 사항

이 옵션은 고급 옵션이며 숙련된 데이터베이스 전문가만 변경해야 합니다.

기본값 5 은 권장 사항이 아닌 시작점입니다. 최신 SQL Server 시스템에서 이를 높이면 더 작은 OLTP 쿼리가 직렬 계획으로 실행되도록 하는 데 도움이 될 수 있습니다. 작은 증분을 사용하고 추가 변경 전에 전체 비즈니스 주기를 관찰합니다. 응용 프로그램 성능을 최적화하는 데 필요한 경우, 더 높거나 낮은 값으로 응용 프로그램 테스트를 수행하세요.

비고

Azure SQL Database에서는 설정할 cost threshold for parallelism수 없습니다. 대신 병렬 처리를 제어하는 데 사용합니다 MAXDOP . 자세한 내용은 Azure SQL Database 및 Azure SQL Managed Instance에서 기본 MAXDOP 변경을 참조하세요.

경우에 따라 쿼리의 계획 비용이 현재 cost threshold for parallelism 값보다 작더라도 병렬 계획을 선택할 수 있습니다. 병렬 또는 직렬 계획을 사용하기로 한 결정은 최적화 프로세스의 앞부분에서 제공된 예상 비용을 기반으로 합니다. 자세한 내용은 쿼리 처리 아키텍처 가이드를 참조하세요.

비고

서버 구성 옵션이 워크로드에 cost threshold for parallelism 대해 너무 높거나 너무 낮게 설정되어 있는지 확인하려면 다음 표시기를 찾습니다.

병렬 처리 설정에 대한 비용 임계값 Description
너무 낮음 - 너무 많은 CPU 라이트 쿼리가 병렬로 진행됩니다.

- 쿼리 저장소에서 많은 계획이 .로 설정되었습니다 is_parallel_plan1.

- CXPACKETCXCONSUMER 대기 유형 통계를 지배합니다. 또한 보고 THREADPOOLSOS_SCHEDULER_YIELD 기다릴 수도 있습니다.
너무 높음 - 워크로드의 CPU 사용량이 많은 쿼리가 병렬로 수행되지 않고 CPU 사용률이 결과적으로 최적보다 높습니다.

- SOS_SCHEDULER_YIELD 는 대기 유형 통계를 지배합니다.

사용 권한

매개 변수 없이 또는 첫 번째 매개 변수만 사용하여 sp_configure 를 실행할 수 있는 권한은 기본적으로 모든 사용자에게 부여됩니다. 구성 옵션을 변경하거나 sp_configure 문을 실행하는 두 매개 변수를 사용하여 RECONFIGURE를 실행하려면 사용자에게 ALTER SETTINGS 서버 수준 권한이 있어야 합니다. ALTER SETTINGS 권한은 sysadminserveradmin 고정 서버 역할에 의해 암시적으로 보유됩니다.

SQL Server Management Studio 사용

  1. 개체 탐색기에서 서버를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

  2. 고급 노드를 선택합니다.

  3. 병렬 처리에서 옵션을 원하는 값으로 변경 cost threshold for parallelism 합니다. 0에서 32,767까지의 값을 입력하거나 선택합니다.

Transact-SQL 사용

이 예제에서는 sp_configure 사용하여 값을 cost threshold for parallelism20설정합니다.

USE master;
GO

EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'cost threshold for parallelism', 20;
GO

RECONFIGURE;
GO

EXECUTE sp_configure 'show advanced options', 0;
GO

RECONFIGURE;
GO

자세한 내용은 서버 구성 옵션을 참조하세요.

후속 작업: 병렬 처리에 대한 비용 임계값 옵션을 구성한 후

이 설정은 서버를 다시 시작하지 않아도 즉시 적용됩니다.