cost threshold for parallelism サーバー構成オプションの構成

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して、SQL Server 2014 で並列処理サーバー構成オプションのコストしきい値を構成する方法について説明します。 cost threshold for parallelism オプションによって、 SQL Server がクエリの並列プランを作成および実行するしきい値が指定されます。 SQL Server によって、クエリの並列プランが作成および実行されるのは、同じクエリの直列プランを実行するための推定コストが cost threshold for parallelismに設定されている値を超える場合のみです。 コストとは、特定のハードウェア構成で、直列プランを実行するための予想所要時間を秒単位で表したものです。 cost threshold for parallelism オプションには、0 ~ 32,767 の範囲の値を設定できます。 既定値は 5 です。

このトピックの内容

始める前に

制限事項と制約事項

  • コストとは、特定のハードウェア構成で、直列プランを実行するための予想所要時間を秒単位で表したものです。 cost threshold for parallelism は、SMP (symmetric multiprocessor) 環境でのみ設定します。

  • SQL Server では または の値が無視されます。

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

    • SQL Server 関係マスク 構成オプションの設定により、 で 1 つの論理プロセッサしか使用できない場合。

    • max degree of parallelism オプションが 1 に設定されている場合。

論理プロセッサは、オペレーティング システムでのタスクのディスパッチまたはスレッド コンテキストの実行を可能にするプロセッサ ハードウェアの基本単位です。 各論理プロセッサは一度に 1 つのスレッド コンテキストのみを実行できます。 プロセッサのコアは、命令をデコードして実行する能力を提供する回路です。 プロセッサのコアには 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 の現在の値より小さくても、並列プランが選択されることがあります。 並列プランまたは直列プランのどちらを使用するかが、完全な最適化が完了する前に算出されたコストの推定値に基づいて決定された場合に、このようなことが起こります。

セキュリティ

アクセス許可

パラメーターなしで、または最初のパラメーターだけを指定して sp_configure を実行する権限は、既定ですべてのユーザーに付与されます。 両方のパラメーターを指定して sp_configure を実行し構成オプションを変更したり RECONFIGURE ステートメントを実行したりするには、ALTER SETTINGS サーバーレベル権限がユーザーに付与されている必要があります。 ALTER SETTINGS 権限は、 sysadmin 固定サーバー ロールと serveradmin 固定サーバー ロールでは暗黙のうちに付与されています。

SQL Server Management Studio を使用する

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

  1. オブジェクト エクスプローラーで、サーバーを右クリックし、 [プロパティ] をクリックします。

  2. [詳細設定] ノードをクリックします。

  3. [並列処理]で、 [CostThresholdForParallelism] オプションを目的の値に変更します。 0 ~ 32767 の値を、入力または選択します。

Transact-SQL の使用

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

  1. データベース エンジンに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。 この例では、 sp_configure を使用して、 cost threshold for parallelism オプションの値を 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  

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

補足情報: cost threshold for parallelism オプションを構成した後

新しい設定は、サーバーを再起動しなくてもすぐに有効になります。

参照

並列インデックス操作の構成
クエリ ヒント (Transact-SQL)
ALTER WORKLOAD GROUP (Transact-SQL)
affinity mask サーバー構成オプション
RECONFIGURE (Transact-SQL)
サーバー構成オプション (SQL Server)
sp_configure (Transact-SQL)