【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を実行するまでアクセスできません。