max degree of parallelism サーバー構成オプションの構成Configure the max degree of 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 2019SQL Server 2019SQL Server Management StudioSQL Server Management Studio max degree of parallelism (MAXDOP) Transact-SQLTransact-SQLサーバー構成オプションを構成する方法について説明します。This topic describes how to configure the max degree of parallelism (MAXDOP) server configuration option in SQL Server 2019SQL Server 2019 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. 複数のマイクロプロセッサまたは CPU が搭載されているコンピューター上で SQL ServerSQL Server のインスタンスを実行するときは、並列処理の次数、つまり各並列プラン実行で 1 つのステートメントを実行するために使用するプロセッサの数が検出されます。When an instance of SQL ServerSQL Server runs on a computer that has more than one microprocessor or CPU, it detects the degree of parallelism, that is, the number of processors employed to run a single statement, for each parallel plan execution. max degree of parallelism オプションを使用すると、並列プラン実行で使用するプロセッサの数を制限できます。You can use the max degree of parallelism option to limit the number of processors to use in parallel plan execution. SQL ServerSQL Server では、クエリ、インデックス データ定義言語 (DDL) の操作、並列挿入、オンライン列変更、並行統計コレクション、静的およびキーセット ドリブン カーソルの作成の場合に並列実行プランが検討されます。considers parallel execution plans for queries, index data definition language (DDL) operations, parallel inserts, online alter column, parallel stats collection, and static and keyset-driven cursor population.

はじめにBefore You Begin

制限事項と制約事項Limitations and Restrictions

  • affinity mask オプションを既定値に設定していないと、対称型多重処理 (SMP) システムで SQL ServerSQL Server が使用できるプロセッサの数が制限されることがあります。If the affinity mask option is not set to the default, it may restrict the number of processors available to SQL ServerSQL Server on symmetric multiprocessing (SMP) systems.

  • 並列処理の最大限度 (MAXDOP) の制限はタスクごとに設定されます。The max degree of parallelism (MAXDOP) limit is set per task. この設定は、要求ごとまたはクエリ制限ごとではありません。It is not a per request or per query limit. つまり、並列クエリ実行中に、1 つの要求で、スケジューラに割り当てられてた複数のタスクを生成することができます。This means that during a parallel query execution, a single request can spawn multiple tasks which are assigned to a scheduler. 詳細については、「スレッドおよびタスクのアーキテクチャ ガイド」を参照してください。For more information, see the Thread and Task Architecture Guide.

推奨事項Recommendations

  • このオプションは詳細設定オプションであるため、熟練したデータベース管理者または認定された 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.

  • サーバーで並列処理の最大限度を特定できるようにするには、このオプションを 0 (既定値) に設定します。To enable the server to determine the maximum degree of parallelism, set this option to 0, the default value. 並列処理の最大限度を 0 に設定すると、使用可能なすべてのプロセッサ (最大 64 プロセッサ) を SQL ServerSQL Server が使用できます。Setting maximum degree of parallelism to 0 allows SQL ServerSQL Server to use all the available processors up to 64 processors. 並列プランが生成されないようにするには、 max degree of parallelism を 1 に設定します。To suppress parallel plan generation, set max degree of parallelism to 1. 1 つのクエリ実行で使用できるプロセッサ コアの最大数を指定するには、値を 1 ~ 32,767 に設定します。Set the value to a number from 1 to 32,767 to specify the maximum number of processor cores that can be used by a single query execution. 使用可能なプロセッサ数よりも多い値を指定すると、実際に使用可能なプロセッサ数が使用されます。If a value greater than the number of available processors is specified, the actual number of available processors is used. コンピューターにプロセッサが 1 つしか搭載されていない場合、 max degree of parallelism の値は無視されます。If the computer has only one processor, the max degree of parallelism value is ignored.

  • クエリ ステートメントに MAXDOP クエリ ヒントを指定して、クエリの max degree of parallelism 値をオーバーライドできます。You can override the max degree of parallelism value in queries by specifying the MAXDOP query hint in the query statement. 詳細については、「クエリ ヒント (Transact-SQL)」を参照してください。For more information, see Query Hints (Transact-SQL).

  • インデックスを作成または再構築したり、クラスター化インデックスを削除するインデックス操作には、リソースを集中して使用するものがあります。Index operations that create or rebuild an index, or that drop a clustered index, can be resource intensive. インデックス ステートメントの MAXDOP インデックス オプションを指定して、インデックス操作の max degree of parallelism 値をオーバーライドできます。You can override the max degree of parallelism value for index operations by specifying the MAXDOP index option in the index statement. MAXDOP 値は実行時にステートメントに適用され、インデックス メタデータには保存されません。The MAXDOP value is applied to the statement at execution time and is not stored in the index metadata. 詳細については、「 並列インデックス操作の構成」を参照してください。For more information, see Configure Parallel Index Operations.

  • クエリおよびインデックスの操作だけでなく、このオプションも DBCC CHECKTABLE、DBCC CHECKDB、および DBCC CHECKFILEGROUP の並列処理を制御します。In addition to queries and index operations, this option also controls the parallelism of DBCC CHECKTABLE, DBCC CHECKDB, and DBCC CHECKFILEGROUP. トレース フラグ 2528 を使用して、これらのステートメントの並列実行プランを無効にすることができます。You can disable parallel execution plans for these statements by using trace flag 2528. 詳細については、「トレース フラグ (Transact-SQL)」を参照してください。For more information, see Trace Flags (Transact-SQL).

ヒント

これをクエリ レベルで行うには、MAXDOP クエリ ヒントを使用します。To accomplish this at the query level, use the MAXDOP query hint.
データベース レベルでこれを行うには、MAXDOP データベース スコープ構成を使用します。To accomplish this at the database level, use the MAXDOP database scoped configuration.
これをワークロード レベルで行うには、MAX_DOP Resource Governor ワークロード グループ構成オプションを使用します。To accomplish this at the workload level, use the MAX_DOP Resource Governor workload group configuration option.

ガイドラインGuidelines

SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降では、サービスの開始中、データベース エンジンDatabase Engineの起動時に NUMA ノードまたはソケットあたり 8 個を超える物理コアが検出されると、既定でソフト NUMA ノードが自動的に作成されます。Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x), during service startup if the データベース エンジンDatabase Engine detects more than eight physical cores per NUMA node or socket at startup, soft-NUMA nodes are created automatically by default. データベース エンジンDatabase Engineにより、同じ物理コアからさまざまなソフト NUMA ノードに論理プロセッサが配置されます。The データベース エンジンDatabase Engine places logical processors from the same physical core into different soft-NUMA nodes. 次の表に示す推奨事項は、並列クエリのすべてのワーカー スレッドを同じソフト NUMA ノード内に保持することを目的としています。The recommendations in the table below are aimed at keeping all the worker threads of a parallel query within the same soft-NUMA node. これにより、ワークロードの NUMA ノード間でクエリのパフォーマンスとワーカー スレッドの分布が向上します。This will improve the performance of the queries and distribution of worker threads across the NUMA nodes for the workload. 詳細については、「ソフト NUMA」を参照してください。For more information, see Soft-NUMA.

SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降では、max degree of parallelism サーバーの構成値を構成する場合、以下のガイドラインを使用します。Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x), use the following guidelines when you configure the max degree of parallelism server configuration value:

単一の NUMA ノードを持つサーバーServer with single NUMA node 8 以下の論理プロセッサLess than or equal to 8 logical processors MAXDOP を論理プロセッサ数以下に保つKeep MAXDOP at or below # of logical processors
単一の NUMA ノードを持つサーバーServer with single NUMA node 8 を超える論理プロセッサGreater than 8 logical processors MAXDOP を 8 に保つKeep MAXDOP at 8
複数の NUMA ノードを持つサーバーServer with multiple NUMA nodes NUMA ノードあたり 16 以下の論理プロセッサLess than or equal to 16 logical processors per NUMA node MAXDOP を NUMA ノードあたりの論理プロセッサ数以下に保つKeep MAXDOP at or below # of logical processors per NUMA node
複数の NUMA ノードを持つサーバーServer with multiple NUMA nodes NUMA ノードあたり 16 を超える論理プロセッサGreater than 16 logical processors per NUMA node 最大値を 16 として、MAXDOP を NUMA ノードあたりの論理プロセッサ数の半分に保つKeep MAXDOP at half the number of logical processors per NUMA node with a MAX value of 16

注意

上の表の NUMA ノードは、SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降で自動的に作成されるソフト NUMA ノード、またはソフト NUMA が無効になっている場合はハードウェア ベースの NUMA ノードを表します。NUMA node in the above table refers to soft-NUMA nodes automatically created by SQL Server 2016 (13.x)SQL Server 2016 (13.x) and higher versions, or hardware-based NUMA nodes if soft-NUMA has been disabled.
リソース ガバナー ワークロード グループに対して max degree of parallelism オプションを設定する場合は、これらと同じガイドラインを使用します。Use these same guidelines when you set the max degree of parallelism option for Resource Governor workload groups. 詳細については、「CREATE WORKLOAD GROUP (Transact-SQL)」を参照してください。For more information, see CREATE WORKLOAD GROUP (Transact-SQL).

SQL Server 2008SQL Server 2008 から SQL Server 2014 (12.x)SQL Server 2014 (12.x) では、max degree of parallelism サーバーの構成値を構成する場合、以下のガイドラインを使用します。From SQL Server 2008SQL Server 2008 through SQL Server 2014 (12.x)SQL Server 2014 (12.x), use the following guidelines when you configure the max degree of parallelism server configuration value:

単一の NUMA ノードを持つサーバーServer with single NUMA node 8 以下の論理プロセッサLess than or equal to 8 logical processors MAXDOP を論理プロセッサ数以下に保つKeep MAXDOP at or below # of logical processors
単一の NUMA ノードを持つサーバーServer with single NUMA node 8 を超える論理プロセッサGreater than 8 logical processors MAXDOP を 8 に保つKeep MAXDOP at 8
複数の NUMA ノードを持つサーバーServer with multiple NUMA nodes NUMA ノードあたり 8 以下の論理プロセッサLess than or equal to 8 logical processors per NUMA node MAXDOP を NUMA ノードあたりの論理プロセッサ数以下に保つKeep MAXDOP at or below # of logical processors per NUMA node
複数の NUMA ノードを持つサーバーServer with multiple NUMA nodes NUMA ノードあたり 8 を超える論理プロセッサGreater than 8 logical processors per NUMA node MAXDOP を 8 に保つKeep MAXDOP at 8

セキュリティSecurity

PermissionsPermissions

パラメーターなしで、または最初のパラメーターだけを指定して 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

max degree of parallelism オプションを構成するにはTo configure the max degree of parallelism option

  1. オブジェクト エクスプローラーで、サーバーを右クリックし、 [プロパティ] をクリックします。In Object Explorer, right-click a server and select Properties.

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

  3. [並列処理の最大限度] ボックスで、並列プランの実行で使用するプロセッサの最大数を指定します。In the Max Degree of Parallelism box, select the maximum number of processors to use in parallel plan execution.

Transact-SQL の使用Using Transact-SQL

max degree of parallelism オプションを構成するにはTo configure the max degree of 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 を使用して、 max degree of parallelism オプションを 8に設定する方法を示します。This example shows how to use sp_configure to configure the max degree of parallelism option to 8.

USE AdventureWorks2012 ;  
GO   
EXEC sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE WITH OVERRIDE;  
GO  
EXEC sp_configure 'max degree of parallelism', 16;  
GO  
RECONFIGURE WITH OVERRIDE;  
GO  

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

補足情報: max degree of parallelism オプションを構成した後Follow Up: After you configure the max degree of parallelism option

新しい設定は、サーバーを再起動しなくてもすぐに有効になります。The setting takes effect immediately without restarting the server.

参照See Also

ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL) ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)
SQL Server の "並列処理の最大限度" 構成オプションの推奨事項とガイドライン Recommendations and guidelines for the "max degree of parallelism" configuration option in SQL Server
affinity mask サーバー構成オプション affinity mask Server Configuration Option
RECONFIGURE (Transact-SQL) RECONFIGURE (Transact-SQL)
サーバー構成オプション (SQL Server) Server Configuration Options (SQL Server)
sp_configure (Transact-SQL) sp_configure (Transact-SQL)
クエリ処理アーキテクチャ ガイド Query Processing Architecture Guide
スレッドおよびタスクのアーキテクチャ ガイド Thread and Task Architecture Guide
並列インデックス操作の構成 Configure Parallel Index Operations
クエリ ヒント (Transact-SQL) Query Hints (Transact-SQL)
インデックス オプションの設定Set Index Options