MaxDOP数 (並列処理の最大限度) を確認、設定する - SQL Server

MaxDOP数 (並列処理の最大限度) を設定する手順を紹介します。

概要

SQL Serverで並列処理の最大限度数 (MaxDOP) 数を変更する手順を紹介します。
通常はインストール時にMaxDOP数を設定しますが、マシンの移行に伴いMaxDOP数を変更したい場合や、 MaxDOP数が無い、以前のバージョンからアップグレードした場合にはMaxDOP数が未設定の"0"になっている場合があります。

手順:SQL Server Management Studio で設定する場合

SQL Server Management Studioを起動し、データベースサーバーに接続します。
左側のツリービューでルートノードを選択し、右クリックします。下図のポップアップメニューが表示されますので、[プロパティ]の項目をクリックします。


[サーバーのプロパティ]ダイアログが表示されます。


左側の[ページの選択]エリアから[詳細設定]の項目をクリックして選択します。下図の表示に変わります。


右側のエリアを下にスクロールし、[並列処理]のセクションの[並列処理の最大限度]の項目の値を確認します。下図では 0 に設定されています。この値がMaxDOP数です。


値を変更できます。値を変更後、ダイアログの[OK]ボタンをクリックしてダイアログを閉じます。


以上で設定は完了です。

手順:SQLコマンドで設定する場合

MaxDOP数は次のSQLコマンドで確認できます。
EXEC sp_configure 'show advanced options', 1;  
RECONFIGURE WITH OVERRIDE; 
EXEC sp_configure;

実行すると結果が取得できます。max degree of parallelism の値 config_value がMaxDOP値です。


MaxDOP数を設定する場合は、次のSQLコマンドになります。
EXEC sp_configure 'max degree of parallelism', (設定したい数);  
EXEC sp_configure;

MaxDOP数を8に設定する場合は、次のコマンドになります。
EXEC sp_configure 'max degree of parallelism', 8;  
EXEC sp_configure;


補足
上記のコマンドを実行することで、show advanced options1に設定された状態になり、EXEC sp_configure すると毎回詳細な情報が表示される状態になります。 元の状態に戻すには、以下のコマンドを実行して、show advanced options0 に戻します。
EXEC sp_configure 'show advanced options', 0;  
RECONFIGURE WITH OVERRIDE; 

MaxDOP数をいくつに設定すればよいか

以下の値が推奨されています。
CPUの構成コア数 (ハイバースレッディング含めた数)MaxDOP数
シングルソケット (NUMAノード = 1)8以下コア数以下に設定
シングルソケット (NUMAノード = 1)8以上8
デュアルソケット以上 (NUMAノード > 1)8以下1ソケットのコア数以下に設定
デュアルソケット以上 (NUMAノード > 1)8以上8

補足
Xeon Scalable Processor でSub NUMA Clustering を有効にしている場合は、デュアルソケットとみなして計算します。 詳しくはNUMAノード数の記事を参照してください。

例:intel Xeon® W-1390 Processor の場合

コア数が8、スレッド数は16のため、MaxDOPに8を設定します。


このページのキーワード
  • SQL Server MaxDOP
  • MaxDOP
  • SQL Server 並列処理 最大限度
  • MaxDOP 設定
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
掲載日: 2021-08-29
iPentec all rights reserverd.