다음을 통해 공유


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

적용 대상: SQL Server

이 문서에서는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server에서 서버 구성 옵션을 구성하는 cost threshold for parallelism 방법을 설명합니다. 이 cost threshold for parallelism 옵션은 SQL Server가 쿼리에 대한 병렬 계획을 만들고 실행하는 임계값을 지정합니다. SQL Server는 동일한 쿼리에 대해 직렬 계획을 실행하는 예상 비용이 설정된 값보다 높은 경우에만 쿼리에 대한 병렬 계획을 만들고 실행합니다 cost threshold for parallelism. 이 비용은 특정 하드웨어 구성에서 직렬 계획을 실행하는 데 필요한 예상 비용을 참조하며 시간 단위가 아닙니다. 이 cost threshold for parallelism 옵션은 0에서 32767까지의 모든 값으로 설정할 수 있습니다.

제한 사항

이 비용은 예상 시간 단위가 아니라 추상화된 비용 단위를 나타냅니다. 대칭 다중 프로세서에서만 설정합니다 cost threshold for parallelism .

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

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

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

  • max degree of parallelism 옵션은 .로 설정됩니다 1.

논리 프로세서는 운영 체제가 작업을 디스패치하거나 스레드 컨텍스트를 실행할 수 있도록 하는 프로세서 하드웨어의 기본 단위입니다. 각 논리적 프로세서는 한 번에 하나만 스레드 컨텍스트를 실행할 수 있습니다. 프로세서 코어는 명령을 디코딩하고 실행하는 회로입니다. 프로세서 코어에는 하나 이상의 논리 프로세서가 포함될 수 있습니다. 다음 Transact-SQL 쿼리를 사용하면 시스템의 CPU 정보를 가져올 수 있습니다.

SELECT (cpu_count / hyperthread_ratio) AS PhysicalCPUs,
       cpu_count AS logicalCPUs
FROM sys.dm_os_sys_info;

권장 사항

이 옵션은 고급 옵션으로, 숙련된 데이터베이스 관리자나 공인된 SQL Server 전문가만이 변경해야 합니다.

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

기본값 5 은 대부분의 시스템에 적합하지만 다른 값이 적절할 수 있습니다. 응용 프로그램 성능을 최적화하는 데 필요한 경우, 더 높거나 낮은 값으로 응용 프로그램 테스트를 수행하세요.

사용 권한

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

SQL Server Management Studio 사용

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

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

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

Transact-SQL 사용

다음 예에서는 sp_configure를 사용하여 cost threshold for parallelism 옵션 값을 10으로 설정하는 방법을 보여 줍니다.

USE master;
GO

EXECUTE sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

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

RECONFIGURE;
GO

EXECUTE sp_configure 'show advanced options', 0;
GO

RECONFIGURE;
GO

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

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

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