Skip to content

Latest commit

 

History

History
123 lines (83 loc) · 6.71 KB

File metadata and controls

123 lines (83 loc) · 6.71 KB
title Configure the cost threshold for parallelism Server Configuration Option | Microsoft Docs
ms.custom
ms.date 03/02/2017
ms.prod sql-server-2016
ms.reviewer
ms.suite
ms.technology
database-engine
ms.tgt_pltfrm
ms.topic article
helpviewer_keywords
cost threshold for parallelism option
ms.assetid dad21bee-fe28-41f6-9d2f-e6ababfaf9db
caps.latest.revision 31
author JennieHubbard
ms.author jhubbard
manager jhubbard

Configure the cost threshold for parallelism Server Configuration Option

[!INCLUDEtsql-appliesto-ss2008-xxxx-xxxx-xxx_md]

This topic describes how to configure the cost threshold for parallelism server configuration option in [!INCLUDEssCurrent] by using [!INCLUDEssManStudioFull] or [!INCLUDEtsql]. The cost threshold for parallelism option specifies the threshold at which [!INCLUDEssNoVersion] creates and runs parallel plans for queries. [!INCLUDEssNoVersion] creates and runs a parallel plan for a query only when the estimated cost to run a serial plan for the same query is higher than the value set in cost threshold for parallelism. The cost refers to an estimated cost required to run the serial plan on a specific hardware configuration, and is not a unit of time. The cost threshold for parallelism option can be set to any value from 0 through 32767. The default value is 5.

In This Topic

Before You Begin

Limitations and Restrictions

  • The cost refers to an abstracted unit of cost and not a unit of estimated time. Only set cost threshold for parallelism on symmetric multiprocessors.

  • [!INCLUDEssNoVersion] ignores the cost threshold for parallelism value under the following conditions:

    • Your computer has only one logical processor.

    • Only a single logical processor is available to [!INCLUDEssNoVersion] because of the affinity mask configuration option.

    • The max degree of parallelism option is set to 1.

A logical processor is the basic unit of processor hardware that allows the operating system to dispatch a task or execute a thread context. Each logical processor can execute only one thread context at a time. The processor core is the circuitry that provides ability to decode and execute instructions. A processor core may contain one or more logical processors. The following [!INCLUDEtsql] query can be used for obtaining CPU information for the system.

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

Recommendations

  • This option is an advanced option and should be changed only by an experienced database administrator or certified [!INCLUDEssNoVersion] technician.

  • In certain cases, a parallel plan may be chosen even though the query's cost plan is less than the current cost threshold for parallelism value. This can happen because the decision to use a parallel or serial plan is based on a cost estimate provided before the full optimization is complete.

Security

Permissions

Execute permissions on sp_configure with no parameters or with only the first parameter are granted to all users by default. To execute sp_configure with both parameters to change a configuration option or to run the RECONFIGURE statement, a user must be granted the ALTER SETTINGS server-level permission. The ALTER SETTINGS permission is implicitly held by the sysadmin and serveradmin fixed server roles.

Using SQL Server Management Studio

To configure the cost threshold for parallelism option

  1. In Object Explorer, right-click a server and select Properties.

  2. Click the Advanced node.

  3. Under Parallelism, change the CostThresholdForParallelism option to the value you want. Type or select a value from 0 to 32767.

Using Transact-SQL

To configure the cost threshold for parallelism option

  1. Connect to the [!INCLUDEssDE].

  2. From the Standard bar, click New Query.

  3. Copy and paste the following example into the query window and click Execute. This example shows how to use sp_configure to set the value of the cost threshold for parallelism option to 10.

USE AdventureWorks2012 ;  
GO  
EXEC sp_configure 'show advanced options', 1 ;  
GO  
RECONFIGURE  
GO  
EXEC sp_configure 'cost threshold for parallelism', 10 ;  
GO  
RECONFIGURE  
GO  

For more information, see Server Configuration Options (SQL Server).

Follow Up: After you configure the cost threshold for parallelism option

The setting takes effect immediately without restarting the server.

See Also

Configure Parallel Index Operations
Query Hints (Transact-SQL)
ALTER WORKLOAD GROUP (Transact-SQL)
affinity mask Server Configuration Option
RECONFIGURE (Transact-SQL)
Server Configuration Options (SQL Server)
sp_configure (Transact-SQL)