DB2 10.5 for Linux, UNIX, and Windows

データ・アクセス方式

SQL または XQuery ステートメントをコンパイルするとき、 照会オプティマイザーは照会を実現するさまざまな方法の実行コストを見積もります。

これらの見積もりに基づいて、オプティマイザーは最良のアクセス・プランを選択します。 アクセス・プラン とは、 SQL または XQuery ステートメントの解決に必要な操作の順序を指定するものです。 アプリケーション・プログラムがバインドされると、パッケージが作成されます。 このパッケージ には、 そのアプリケーション・プログラムの静的 SQL および XQuery ステートメント全部に関するアクセス・プランが入れられます。動的 SQL および XQuery ステートメントのアクセス・プランは、実行時に作成されます。

表のデータにアクセスするには次の 3 つの方法があります。
  • 表全体を順番にスキャンする方法
  • 表の索引にアクセスして特定の行を見つける方法
  • スキャン・シェアリングによる方法

行は、通常 WHERE 節で記述される、述部で定義された条件にしたがってフィルター操作できます。 アクセスされた表の選択された行は結合されて結果セットが生成されます。 この出力データをさらにグループ化したりソートしたりして処理する場合もあります。

DB2® 9.7 からは、スキャン時に別のスキャンのバッファー・プール・ページを使用する機能であるスキャン・シェアリング がデフォルトの動作になりました。スキャン・シェアリングによって、ワークロードの並行性とパフォーマンスが改善されます。 スキャン・シェアリングを使用すると、システムはさらに多くの同時アプリケーションをサポートでき、照会のパフォーマンスが良くなり、システムのスループットが向上する可能性があるため、スキャン・シェアリングに関係しない照会さえも益が及びます。 スキャン・シェアリングは、表スキャンまたは大規模な表のマルチディメンション・クラスタリング (MDC) ブロック索引スキャンなどのスキャンを実行するアプリケーションが含まれる環境では、特に有効です。 コンパイラーは、特定のスキャンがスキャン・シェアリングに含めるのに適格であるかどうかを、スキャンのタイプ、その目的、分離レベル、レコードごとに実行される処理の量などに基づいて決定します。