cost threshold for parallelism オプション
cost threshold for parallelism オプションは、Microsoft SQL Server によって、クエリの並列プランが作成および実行されるときのしきい値を指定する場合に使用します。SQL Server によって、クエリの並列プランが作成および実行されるのは、同じクエリの直列プランを実行するための推定コストが cost threshold for parallelism に設定されている値よりも大きい場合のみです。コストとは、特定のハードウェア構成で直列プランを実行するために必要な予測所要時間を秒単位で表したものです。cost threshold for parallelism は、SMP (symmetric multiprocessor) 環境でのみ設定します。
通常は、長いクエリの方が並列プランの利点が生かされ、並列プランの初期化、同期化、および終了にかかる余分な時間を帳消しにする高パフォーマンスを得ることができます。cost threshold for parallelism オプションは、短いクエリと長いクエリの両方を組み合わせて実行する場合によく使用されます。短いクエリでは直列プランが実行され、長いクエリでは並列プランが実行されます。どのクエリを短いと見なして直列プランを使用するかは、cost threshold for parallelism の値で決定されます。
クエリのコスト プランが cost threshold for parallelism の現在の値より小さくても、並列プランが選択されることがあります。並列プランまたは直列プランのどちらを使用するかが、完全な最適化が完了する前に算出されたコストの推定値に基づいて決定された場合に、このようなことが起こります。
cost threshold for parallelism オプションには、0 ~ 32,767 の範囲の値を設定できます。既定値は 5 です。
次の条件に該当する場合、SQL Server では cost threshold for parallelism の値が無視されます。
- 使用しているコンピュータにプロセッサが 1 つしか搭載されていない場合。
- affinity mask 構成オプションの設定により、SQL Server で 1 つの CPU しか使用できない場合。
- max degree of parallelism オプションが 1 に設定されている場合。
cost threshold for parallelism は拡張オプションです。sp_configure システム ストアド プロシージャを使用して cost threshold for parallelism の設定を変更するには、show advanced options を 1 に設定する必要があります。新しい設定は、サーバーを再起動しなくても直ちに有効になります。
例
次の例では、並列処理のコストのしきい値を 10 秒に設定しています。
sp_configure 'show advanced options', 1;
GO
reconfigure;
GO
sp_configure 'cost threshold for parallelism', 10;
GO
reconfigure;
GO
参照
概念
affinity mask オプション
max degree of parallelism オプション
サーバー構成オプションの設定
その他の技術情報
RECONFIGURE (Transact-SQL)
sp_configure (Transact-SQL)