cost threshold for parallelism サーバー構成オプションの構成Configure the cost threshold for parallelism Server Configuration Option

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

このトピックでは、 または を使用して、 SQL Server 2019 (15.x)SQL Server 2019 (15.x)SQL Server Management StudioSQL Server Management Studio cost threshold for parallelism Transact-SQLTransact-SQLサーバー構成オプションを構成する方法について説明します。This topic describes how to configure the cost threshold for parallelism server configuration option in SQL Server 2019 (15.x)SQL Server 2019 (15.x) by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. cost threshold for parallelism オプションによって、 SQL ServerSQL Server がクエリの並列プランを作成および実行するしきい値が指定されます。The cost threshold for parallelism option specifies the threshold at which SQL ServerSQL Server creates and runs parallel plans for queries. SQL ServerSQL Server によって、クエリの並列プランが作成および実行されるのは、同じクエリの直列プランを実行するための推定コストが cost threshold for parallelismに設定されている値を超える場合のみです。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. cost threshold for parallelism オプションには、0 ~ 32,767 の範囲の値を設定できます。The cost threshold for parallelism option can be set to any value from 0 through 32767. 既定値は 5 です。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. cost threshold for parallelism は、SMP (symmetric multiprocessor) 環境でのみ設定します。Only set cost threshold for parallelism on symmetric multiprocessors.

  • SQL ServerSQL Server では または の値が無視されます。ignores the cost threshold for parallelism value under the following conditions:

    • 使用しているコンピューターに論理プロセッサが 1 つしか搭載されていない場合。Your computer has only one logical processor.

    • SQL ServerSQL Server 関係マスク 構成オプションの設定により、 で 1 つの論理プロセッサしか使用できない場合。Only a single logical processor is available to SQL ServerSQL Server because of the affinity mask configuration option.

    • max degree of parallelism オプションが 1 に設定されている場合。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. 各論理プロセッサは一度に 1 つのスレッド コンテキストのみを実行できます。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. プロセッサのコアには 1 つ以上の論理プロセッサが含まれます。A processor core may contain one or more logical processors. 次の Transact-SQLTransact-SQL クエリは、システムの CPU 情報の取得に使用できます。The following Transact-SQLTransact-SQL 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  


  • このオプションは詳細設定オプションであるため、熟練したデータベース管理者または認定された SQL ServerSQL Server プロフェッショナルだけが変更するようにしてください。This option is an advanced option and should be changed only by an experienced database administrator or certified SQL ServerSQL Server professional.

  • クエリのコスト プランが cost threshold for parallelism の現在の値より小さくても、並列プランが選択されることがあります。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 earlier in the optimization process. 詳細については、「クエリ処理アーキテクチャ ガイド」をご覧ください。For more information, refer to the Query Processing Architecture Guide.

  • ほとんどのシステムでは既定値の 5 で適切ですが、別の値が適切な場合もあります。While the default value of 5 is adequate for most systems, a different value may be appropriate. アプリケーション パフォーマンスを最適化するために必要であれば、より高い値や低い値でアプリケーションのテストを行ってください。Perform application testing with higher and lower values if needed to optimize application performance.



パラメーターなしで、または最初のパラメーターだけを指定して sp_configure を実行する権限は、既定ですべてのユーザーに付与されます。Execute permissions on sp_configure with no parameters or with only the first parameter are granted to all users by default. 両方のパラメーターを指定して sp_configure を実行し構成オプションを変更したり RECONFIGURE ステートメントを実行したりするには、ALTER SETTINGS サーバーレベル権限がユーザーに付与されている必要があります。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. ALTER SETTINGS 権限は、 sysadmin 固定サーバー ロールと serveradmin 固定サーバー ロールでは暗黙のうちに付与されています。The ALTER SETTINGS permission is implicitly held by the sysadmin and serveradmin fixed server roles.

SQL Server Management Studio の使用Using SQL Server Management Studio

cost threshold for parallelism オプションを構成するには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 Cost Threshold for Parallelism option to the value you want. 0 ~ 32767 の値を、入力または選択します。Type or select a value from 0 to 32767.

Transact-SQL の使用Using Transact-SQL

cost threshold for parallelism オプションを構成するにはTo configure the cost threshold for parallelism option

  1. データベース エンジンDatabase Engineに接続します。Connect to the データベース エンジンDatabase Engine.

  2. [標準] ツール バーの [新しいクエリ] をクリックします。From the Standard bar, click New Query.

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。Copy and paste the following example into the query window and click Execute. この例では、 sp_configure を使用して、 cost threshold for parallelism オプションの値を 10に設定する方法を示します。This example shows how to use sp_configure to set the value of the cost threshold for parallelism option to 10.

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

詳細については、「 サーバー構成オプション (SQL Server)」を参照してください。For more information, see Server Configuration Options (SQL Server).

補足情報: cost threshold for parallelism オプションを構成した後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
クエリ ヒント (Transact-SQL) Query Hints (Transact-SQL)
affinity mask サーバー構成オプション affinity mask Server Configuration Option
サーバー構成オプション (SQL Server) Server Configuration Options (SQL Server)
sp_configure (Transact-SQL)sp_configure (Transact-SQL)