Kaboingが述べたように、MAXDOP(n)
実際には、クエリプロセッサで使用されているCPUコアの数を制御します。
完全にアイドル状態のシステムでは、SQL Serverはテーブルをできるだけ早くメモリにプルし、メモリ内でテーブルを結合しようとします。あなたの場合、これは単一のCPUで行うのが最善である可能性があります。これは、OPTION (FORCE ORDER)
を使用した場合と同じ効果がある場合があります これにより、クエリオプティマイザは指定した結合の順序を使用するようになります。場合によっては、OPTION (FORCE PLAN)
を見たことがあります。 クエリを実行時間の26秒から1秒に短縮します。
Books Onlineはさらに、MAXDOP
の可能な値について述べています。 は:
0-現在のシステムワークロードに応じて、使用可能なCPUの実際の数を使用します。これはデフォルト値であり、推奨設定です。
1-並列プランの生成を抑制します。操作は順次実行されます。
2-64-プロセッサの数を指定された値に制限します。現在のワークロードに応じて、使用するプロセッサの数が少なくなる場合があります。使用可能なCPUの数よりも大きい値を指定すると、実際に使用可能なCPUの数が使用されます。
MAXDOP
の最適な使用法がわかりません ただし、推測すると、8つのパーティションを持つテーブルがある場合は、MAXDOP(8)
を指定する必要があります。 I / Oの制限のためですが、間違っている可能性があります。
MAXDOP
について見つけたクイックリンクを次に示します。 :
オンラインブック:並列度
MAXDOPオプションの構成に使用する一般的なガイドライン