データベース照会などの作業の構成要素は、 並列に実行することにより、パフォーマンスを大幅に強化できます。 作業の性質、データベース構成、およびハードウェア環境すべてによって、 DB2 が作業を並列に実行する方法は異なります。 これらの考慮事項は相互に関連しているため、 データベースの物理的および論理的な設計の作業をする際に、 これらを一緒に検討する必要があります。 このセクションでは、 DB2 によってサポートされている次のタイプの並列性について説明します。
表スペースに複数のコンテナーがある場合、 データベース・マネージャーは並列入出力 を利用できます。 並列入出力とは、 2 つまたはそれ以上の入出力装置への書き込み処理またはそこからの読み取り処理を同時に行うことです。 この結果、スループットはかなり向上します。
入出力並列化は、ハードウェア環境で説明する各ハードウェア環境の構成要素です。 表 3 は、入出力並列化に最適なハードウェア環境の一覧を示したものです。
照会並列化のタイプには、照会間並列化と照会内並列化の 2 つがあります。
照会間並列化 とは、 1 つのデータベースを同時に複数のアプリケーションで照会する機能のことです。 各照会はそれぞれ他の照会と独立して実行されますが、 DB2 は、それらのすべてを同時に実行します。 DB2 は、このタイプの並列化を常にサポートします。
照会内並列化 とは、 区画内並行化 または区画間並行化 (あるいはその両方) を使用して、 単一の照会の一部分を同時に処理することです。
本書全体を通して、照会並列化 という用語を使用します。
区画内並行化 とは、 1 つの照会を複数の部分に分割する機能のことです。 (一部のユーティリティーも、このタイプの並列化を実行します。 ユーティリティー並列化を参照してください。)
区画内並行化では、索引の作成、 データベースのロード、または SQL 照会など、 通常は単一データベース操作と考えられている操作を複数の部分に分割して、 それらの部分の多くまたはすべてが単一のデータベース区画内で 並列して実行できるようにします。
図 22 は、4 つのピース (部分) に分割して並列に実行できるようにする照会を示したものであり、 照会が順次に実行された場合に比べてより速く結果が戻されます。 これらのピースは、お互いのコピーです。 区画内並行化を利用するためには、データベースを適切に構成する必要があります。 並列化の程度をユーザーが選択するか、またはシステムに選択させるようにすることができます。 並列化の程度は、並列に実行する照会のピースの数を表しています。
表 3 は、区画内並行化に最適なハードウェア環境の一覧を示したものです。
![]() |
区画間並行化 とは、1 つのマシンまたは複数のマシン上で、 区分データベースの複数の区画に渡って 1 つの照会を複数の部分に分割する機能のことです。 照会は並列に実行されます。 (一部のユーティリティーも、このタイプの並列化を実行します。 ユーティリティー並列化を参照してください。)
区画間並行化では、索引の作成、データベースのロード、または SQL 照会など、 通常は単一データベース操作と考えられている操作を複数の部分に分割して、 それらの部分の多くまたはすべてが、 1 つのマシンまたは複数のマシンで、区分データベースの複数の区画に渡って 並列して実行できるようにします。
図 23 は、4 つのピースに分割して並列に実行できるようにする照会を示したものであり、 照会が単一の区画内で順次に実行された場合に比べてより速く結果が戻されます。
並列化の程度は、作成した区画の数とノードグループを定義した方法によって大部分決まります。
表 3 は、区画間並行化に最適なハードウェア環境の一覧を示したものです。
![]() |
区画内並行化と区画間並行化を同時に使用することができます。 この組み合わせにより 2 次元並列化が 可能になるため、この結果、照会の処理スピードが劇的に速くなります。
![]() |
DB2 のユーティリティーは、区画内並行化を利用することができます。 これらのユーティリティーは区画間並行化も利用しており、 複数のデータベース区画が存在していると、 ユーティリティーはそれぞれの区画で並列に実行されます。
ロード・ユーティリティーは、区画内並行化と入出力並列化を利用することができます。 データのロードは、CPU 集中型のタスクです。 ロード・ユーティリティーは、データの解析および形式設定などのタスクに、複数のプロセッサーを利用します。 また、ロード・ユーティリティーは、並列入出力サーバーを使用して、 コンテナーにデータを並列して書き込むことができます。 ロード・ユーティリティーの並列化を可能にする方法については、 データ移動ユーティリティー 手引きおよび解説書 を参照してください。
区分データベース環境では、オートローダー・ユーティリティーは、 表が存在する各データベース区画で LOAD コマンドを並列的に呼び出すことによって、 区画内、区画間、および入出力並行処理を利用します。 オートローダー・ユーティリティーについては、 データ移動ユーティリティー 手引きおよび解説書 を参照してください。
索引の作成時には、データのスキャンとその後のソートが並列して実行されます。 DB2 では、索引を作成するときに、入出力並列化と区画内並行化の両方を利用しています。 これは、再始動時 (索引が無効としてマーク付けされている場合) およびデータの再編成時に、 CREATE INDEX ステートメントが出されたときの索引作成のスピードアップに役立ちます。
データのバックアップと復元は、かなり入出力制約型のタスクです。 DB2 では、バックアップ操作と復元操作を実行するときに、 入出力並列化と区画内並行化の両方を利用しています。 バックアップでは、複数の表スペース・コンテナーから並列に読み取り、 複数のバックアップ媒体に非同期的に並列に書き込みを行うことによって、 入出力並列化を利用しています。 BACKUP DATABASE コマンドと RESTORE DATABASE コマンドで並列化を可能にする方法については、 コマンド解説書 でこれらのユーティリティーを参照してください。