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

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

このトピックの内容

  • 作業を開始する準備:

    制限事項と制約事項

    推奨事項

    セキュリティ

  • 以下を使用して cost threshold for parallelism オプションを構成するには:

    SQL Server Management Studio

    Transact-SQL

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

作業を開始する準備

制限事項と制約事項

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

  • 次の条件に該当する場合、SQL Server では cost threshold for parallelism の値が無視されます。

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

    • affinity mask 構成オプションの設定により、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 固定サーバー ロールでは暗黙のうちに付与されています。

[トップに戻る] リンクで使用される矢印アイコン[Top]

SQL Server Management Studio の使用

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

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

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

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

[トップに戻る] リンクで使用される矢印アイコン[Top]

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

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

[トップに戻る] リンクで使用される矢印アイコン[Top]

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

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

[トップに戻る] リンクで使用される矢印アイコン[Top]

関連項目

参照

クエリ ヒント (Transact-SQL)

ALTER WORKLOAD GROUP (Transact-SQL)

RECONFIGURE (Transact-SQL)

sp_configure (Transact-SQL)

概念

並列インデックス操作の構成

affinity mask サーバー構成オプション

サーバー構成オプション