マテリアライズ照会表による照会の最適化

マテリアライズ照会表 (MQT) は、複雑な分析照会の応答時間を改善するのに高い効果を発揮します。そのデータは、マテリアライズ照会表の定義で指定された表から事前計算された結果で構成されているからです。
MQT は、特に次の 1 つ以上のタイプのデータを使用する照会で、応答時間を改善するのに役立ちます。
  • 1 ディメンション以上の集約データ
  • 表のグループを対象とする結合および集約データ
  • 通常アクセスされるデータのサブセットからのデータ
  • パーティション・データベース環境での表からの再パーティション・データ、または表の一部
基本表が大きくなれば大きくなるほど、MQT を使用した場合の応答時間向上の可能性は大きなものになります。

MQT の情報は、SQL および XQuery コンパイラーに組み込まれています。 照会の再書き込みフェーズの間、オプティマイザーは、参照先の基本表に直接アクセスする代わりに使用可能な MQT を使用するかどうかを決定します。 MQT を使用する場合は、MQT ではなく基本表に対するアクセス権が必要となり、EXPLAIN 機能によって、どの MQT が選択されたかについての情報を入手できます。

MQT を使用すると、照会間での作業の重複を効果的に取り除くことができます。 計算は MQT が作成されるときに 1 回と、リフレッシュされるたびに 1 回行われるだけですが、その内容は多くの照会が実行されているときに再利用できます。

MQT は多くの点で REGULAR 表のような働きをするため、表スペース定義や索引などを使用したデータ・アクセスの最適化や、RUNSTATS ユーティリティーの実行にも同じ指針が当てはまります。

Db2 Cancun Release 10.5.0.4 以降では、 列で構成されたユーザー維持型 MQT がサポートされます。

サーバーをバージョン Db2® サーバをバージョン 10.1 またはそれ以前のリリースからアップグレードする場合、既存のMQTを持つ行編成テーブルを列編成テーブルに変換する予定であれば、 列編成のユーザ保持MQTを使用することで、移植性を簡素化し、クエリ・パフォーマンスを向上させることができます。