照会の並列処理の制御
使用可能な並列処理には以下の 2 つのタイプがあります。 1 つは、無料で使用できる並列入出力です。 2 つ目は Db2® 対称型マルチプロセッシングで、オペレーティング・システムのオプション 26 としてパッケージされており、無料で使用できます。 並列処理を有効にするか無効にするかを制御できます。
システムまたはジョブに対して並列処理が有効になっている場合でも、個々の照会で非並列処理の実装が使用されることがあります。 この決定は、機能上の制約事項に関連している可能性があります。あるいは、オプティマイザーが非並列方式を選択する可能性があります。
並列アクセス方式で処理される照会は、主記憶域、CPU、およびディスク・リソースを積極的に使用します。
このため、IBM では、並列処理の使用を、分析ワークロードやレポート作成ワークロードで一般的に見られるような、より長時間実行される照会に制限することをお勧めします。 一般的なルールとして、並列処理は少なくとも 60 秒間実行される照会に適用するのが最適です。 IBM は、並列処理レベル *OPTIMIZE も推奨しています。これは、最適化プログラムが照会の計画と実行において最大の柔軟性を持つためです。 QQRYDEGREEシステム値でシステム全体の並列処理をアクティブにすることは推奨されない。
並列処理レベルは、システムレベルまたはジョブレベルで制御できる。 ジョブについては、CURRENT DEGREE特別レジスタまたはPARALLEL_DEGREE QAQQINIオプションのいずれかを使用することができる。
さらに、並列処理レベルが*OPTIMIZEとして指定されている場合、QAQQINIオプションで追加の制御が提供される:
- 照会エンジンは、システム CPU 使用率をアクティブにモニターします。 システム上で一定レベルの予約処理能力を提供するために、照会エンジンは、システム CPU 使用率が 80% を超えると、照会の処理に使用される並列タスクの数を減らします。 この動作は、PARALLEL_MAX_SYSTEM_CPU QAQQINI オプションを使用して無効にしたり変更したりすることができます。
- 並列処理のために照会によって使用される並列処理の量は、PARALLEL_DEGREE QAQQINI オプションの *OPTIMIZE 値とともにパーセンテージを指定することによって、削減または増加することができます。 このパーセンテージは、オプティマイザーが使用可能と見なすことができる並列処理の量に影響します。 例えば、8 つのプロセッサーを持つシステムでは、50 のパーセンテージは、ワークロード・グループなどの他の制約に従って、オプティマイザーがそれらのプロセッサーのうち最大 4 つを使用することを考慮することを意味します。
- 問い合わせエンジンは、PARALLEL_MIN_TIME QAQQINIオプションで指定された秒数を超えて問い合わせが実行されるまで、並列処理の使用を延期します。 照会が指定された時間より長く実行されると、オプティマイザーは並列処理の使用を検討します。 デフォルトの時間である 60 秒は、並列処理の使用を長時間実行照会に制限することを目的としています。通常、並列処理が最大の利点を提供します。 並列処理が有効であることが知られているワークロードでは、PARALLEL_MIN_TIMEを*NONEに設定することで、この時間遅延を無効にすることができます。