マテリアライズ照会表を定義するには

提供: DB2逆引きWiki
移動: 案内, 検索

DB2逆引きリファレンス目次】 【DB2逆引きリファレンス目次#実装編】 【DB2逆引きリファレンス目次#表とビュー

目次

前提

  • データベース接続が必要
  • 以下のいずれかが必要: SYSADM権限, DBADM権限
  • もしくは以下の特権のすべて: データベースに対するCREATETAB特権、表スペースに対するUSE特権、スキーマに対するCREATEIN特権
  • 以上の前提に加え、照会を行うための権限も必要です

解説

マテリアライズ照会表(MQT)を定義するには、CREATE TABLEを用います。

CREATE TABLE 表名 AS ( 全選択 )

  [DATA INITIALLY DEFERRED REFRESH 更新方式 ]   [ENABLE QUERY OPTIMIZATION]

  [MAINTAINED BY USER]

表名
定義するマテリアライズ照会表の名前を指定します。
全選択
表の定義を行うための全選択を記述します。
DATA INITIALLY DEFERRED
表作成時にデータを初期化しません。データを初期化するにはREFRESH TABLEを用います。
REFRESH 更新方式
表のデータの保守方法を以下のいずれかで指定します。
DEFERRED
REFRESH TABLEを実行することで、表のデータを更新します。
IMMEDIATE
基本表への更新、削除、挿入は、マテリアライズ照会表に即座に反映されます。

ENABLE QUERY OPTIMIZATION
マテリアライズ照会表を用いたクエリーの最適化を許可します。
MAINTAINED BY USER
マテリアライズ照会表に対する直接の更新、削除、挿入を許可します。このオプションを指定すると、REFRESH TABLEによる表の更新はできなくなります。

使用例

基本表(ここではparts)への全選択に基づいてマテリアライズ照会表(ここではmqt1)を定義する例。

db2 ==> CREATE TABLE mqt1 AS ( SELECT type, SUM(amount) AS total FROM parts GROUP BY type ) DATA INITIALLY DEFERRED REFRESH DEFERRED↓

注意

  • DEFFEREDおよびIMMEDIATEオプションを利用する場合、全選択に利用できるSQLに一部制限があります(詳細はマニュアルを参照)。
  • INITIALLY DEFERREDで作成された表は、REFRESH TABLEを実行するまでアクセスできません。

参照

個人用ツール
名前空間

変種
操作
案内
ツール