最高のパフォーマンスを得るには MAXDOP を設定する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

最高のパフォーマンスを得るには MAXDOP を設定する

最大並列度 (MAXDOP) は、SQL Server を複数のCPUで実行するためのサーバー構成オプションである。parallel プラン実行で 1 つのステートメントを実行するために使用されるプロセッサの数を制御します。デフォルト値は 0 であり、SQL Server は利用可能なすべてのプロセッサを使用します。これはパフォーマンスに影響する可能性があり、ほとんどのユースケースには最適ではありません。

SQL Server の MAXDOP 値を構成する際には、以下のガイドラインを使用します。

NUMA ノード ロジカルプロセッサ 最大ドロップ値
単一 ≤ 8 4、2、またはコア数 (1 コアまたは 2 コアの場合)
単一 > 8 8、4、または 2
複数 ≤ 16 8、4、または 2
複数 > 16 16、8、4、または2
注記

MAXDOP を 2、4、または 8 に設定すると、ほとんどの使用例で最良の結果が得られます。ワークロードをテストし、CXPACKET などの並列処理関連の待機タイプがないか監視することをお勧めします。

以下のクエリーを使用して、SQL Server 2016 以降のバージョンの現在の NUMA 構成を収集することができる:

select @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), cpu_count, hyperthread_ratio, softnuma_configuration, softnuma_configuration_desc, socket_count, numa_node_count from sys.dm_os_sys_info

各パラメータの意味は次のとおりです。

  • cpu_count は、システム内の論理 CPU の数を指します。

  • hyperthread_ratio は、1 つの物理プロセッサが使用するコアの数の比率です。

  • softnuma_configuration01、または2である:

    • 0 (OFF):デフォルト

    • 1 (automated): ソフト NUMA

    • 2 (manual): ソフト NUMA

  • softnuma_configuration_descOFFON、またはMANUALである:

    • OFF は、ソフトNUMA機能がオフであることを示します。

    • ON は、SQL Server が自動的に NUMA ノード・サイズを決定することを示します。

    • MANUAL は、ソフト NUMA が手動で設定されていることを示します。

  • socket_count はプロセッサソケットの数です。

  • numa_node_countはシステムで使用可能な NUMA ノードの数です。

現在の MAXDOP 値を確認するには、以下を使用します。

$ sp_configure 'max_degree_of_parallelism'

MAXDOP の詳細については、Microsoft SQL Server ドキュメント を参照してください。