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

適用対象:yesSQL Server (サポートされているすべてのバージョン)

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

このトピックの内容

はじめに

制限事項と制約事項

  • コストとは、予想時間の単位ではなく、抽象化されたコストの単位を表します。 cost threshold for parallelism は、SMP (symmetric multiprocessor) 環境でのみ設定します。

  • SQL Server条件では、並列処理のコストしきい値は無視されます。

    • 使用しているコンピューターに論理プロセッサが 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 の現在の値より小さくても、並列プランが選択されることがあります。 並列プランまたは直列プランのどちらを使用するかが、最適化プロセスの初期段階で算出されたコストの推定値に基づいて決定された場合に、このようなことが起こります。 詳細については、「クエリ処理アーキテクチャ ガイド」をご覧ください。

  • ほとんどのシステムでは既定値の 5 で適切ですが、別の値が適切な場合もあります。 アプリケーション パフォーマンスを最適化するために必要であれば、より高い値や低い値でアプリケーションのテストを行ってください。

セキュリティ

アクセス許可

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

SQL Server Management Studio を使用する

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

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

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

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

Transact-SQL の使用

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

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

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

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