max degree of parallelism オプション

複数のマイクロプロセッサまたは CPU が搭載されているコンピューター上で SQL Server を実行するときは、並列処理の最適な程度、つまり各並列プラン実行で 1 つのステートメントを実行するために使用するプロセッサの数が検出されます。max degree of parallelism オプションを使用すると、並列プラン実行で使用するプロセッサの数を制限できます。サーバーで並列処理の最大限度を特定できるようにするには、このオプションを 0 (既定値) に設定します。並列処理の最大限度を 0 に設定すると、使用可能なすべてのプロセッサ (最大 64 プロセッサ) を使用できます。並列プランの生成を中止するには、max degree of parallelism を 1 に設定します。1 つのクエリの実行で使用されるプロセッサの最大数を制限するには、2 以上の値を設定します。並列処理の次数の設定の最大値は、SQL Server、CPU の種類、およびオペレーティング システムによって決まります。使用可能なプロセッサ数よりも多い値を指定すると、実際に使用可能なプロセッサ数が使用されます。コンピューターにプロセッサが 1 つしか搭載されていない場合、max degree of parallelism の値は無視されます。

SQL Server のエディション

1

SQL Server Express

2

SQL Server Workgroup

4

SQL Server 2008 Web

4

SQL Server 2008 Standard

32

x86 オペレーティング システム上で実行されている SQL Server 2008 Enterprise

max degree of parallelism 値の上書き

SQL Server は、クエリ、インデックス データ定義言語 (DDL) の操作、静的およびキーセット ドリブン カーソルの作成の場合に並列実行プランを検討します。並列実行の詳細については、「並列処理の次数」を参照してください。

クエリ ステートメントに MAXDOP クエリ ヒントを指定して、クエリの max degree of parallelism 値を上書きできます。詳細については、「クエリ ヒント (Transact-SQL)」を参照してください。

インデックスを作成または再構築したり、クラスター化インデックスを削除するインデックス操作には、リソースを集中して使用するものがあります。インデックス ステートメントの MAXDOP インデックス オプションを指定して、インデックス操作の max degree of parallelism 値を上書きできます。MAXDOP 値は実行時にステートメントに適用され、インデックス メタデータには保存されません。詳細については、「並列インデックス操作の構成」を参照してください。

クエリおよびインデックスの操作だけでなく、このオプションも DBCC CHECKTABLE、DBCC CHECKDB、および DBCC CHECKFILEGROUP の並列処理を制御します。トレース フラグ 2528 を使用して、これらのステートメントの並列実行プランを無効にすることができます。詳細については、「トレース フラグ (Transact-SQL)」を参照してください。

注意

affinity mask オプションを既定値に設定していないと、対称型多重処理 (SMP) システムで SQL Server が使用できるプロセッサの数が制限されることがあります。

max degree of parallelism オプションの設定

max degree of parallelism は拡張オプションです。sp_configure システム ストアド プロシージャを使用して max degree of parallelism の設定を変更するには、show advanced options を 1 に設定する必要があります。新しい設定は、MSSQLSERVER サービスを再起動しなくてもすぐに有効になります。

次の例では、max degree of parallelism オプションを 8 に設定します。

sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
sp_configure 'max degree of parallelism', 8;
GO
RECONFIGURE WITH OVERRIDE;
GO

sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
sp_configure 'max degree of parallelism', 8;
GO
RECONFIGURE WITH OVERRIDE;
GO

SQL Server Management Studio での max degree of parallelism の値の設定の詳細については、「並列クエリに使用可能なプロセッサ数を構成する方法 (SQL Server Management Studio)」を参照してください。