マテリアライズド クエリー テーブルの作成と編集
目次
マテリアライズド クエリー テーブルは、マテリアライズド ビューに似ているテーブルで、1 つ以上のテーブルに対するクエリー結果に基づいて定義されます。ビューを構成するクエリーがビューの参照時に実行されるのに対し、マテリアライズド クエリー テーブルにはクエリー結果がデータとして保存されます。ユーザーは、そのデータを元のテーブル内のデータの代わりに使用して作業できます。
マテリアライズド クエリー テーブルを使用すると、クエリーのパフォーマンスを大幅に向上させることができます。特に複雑なクエリーに対して効果的です。
マテリアライズド クエリー テーブルは、次のデータベース プラットフォームでサポートされます。
- IBM DB2 for LUW 5.x、6.x、7.x、8.x、9.x、および 10.x
メモ: DB2 マテリアライズド クエリー テーブル ウィザードと DB2 マテリアライズド クエリー テーブル エディタには同じオプションが表示されます。ただし、[アタッチメントのバインド]オプションはエディタのみに表示されます。
マテリアライズド クエリー テーブルの追加
- モデル エクスプローラで、物理[メイン モデル]を展開します。[マテリアライズド クエリー テーブル]ノードを右クリックして、ショートカット メニューの[マテリアライズド クエリー テーブルの作成]をクリックします。
- DB2 マテリアライズド クエリー テーブル ウィザードのステップを完了したら、[完了]をクリックするとマテリアライズド クエリー テーブルが作成されます。
ヒント: 作成したマテリアライズド クエリー テーブルを編集するには、マテリアライズド クエリー テーブルを右クリックして、ショートカット メニューの[マテリアライズド クエリー テーブルの編集]をクリックします。
[名前]タブ
マテリアライズド クエリー テーブルの名前は、ここに入力した情報から導出され、「所有者.名前」という形式になります。
- 所有者は、マテリアライズド クエリー テーブルの所有者です。
- 名前は、マテリアライズド クエリー テーブルの名前です。
[場所]タブ
- [マテリアライズド クエリー テーブルのテーブルスペース]: データ変更のログ記録によるパフォーマンス低下を避けるには、マテリアライズド クエリー テーブルを NOT LOGGED が定義されたテーブルスペースに作成します。
- [リフレッシュの設定]: ベース テーブルの更新時にマテリアライズド クエリー テーブルが更新されるタイミングを指定します。
- [クエリーの最適化]: クエリーの自動書き換えでマテリアライズド クエリー テーブルの使用が検討されます。クエリーの最適化を有効にすると、マテリアライズド クエリー テーブルに対する全選択で選択できる対象についての制限が厳しくなります。
[SQL]タブ
SELECT キーワードで始まる、マテリアライズド クエリー テーブルのクエリーを入力します。
[定義]タブ
マテリアライズド クエリー テーブルの定義を入力または編集します。対象データベースでサポートされる場合、SQL コードの生成時に、この定義がコメントとして追加されます。
[DDL]タブ
マテリアライズド クエリー テーブルの作成に使用される CREATE SUMMARY TABLE AS... (SELECT...) 文が表示されます。モデルで選択されたデータベース プラットフォームに固有のパーサーを使用して、マテリアライズド クエリー テーブルを生成します。
[アタッチメントのバインド]タブ
アタッチメント(外部情報)をマテリアライズド クエリー テーブルにバインドします。また、オブジェクトからアタッチメントを削除したり、アタッチメントのバインドのデフォルト値を上書きしたり、バインドされたアタッチメントの位置を変更することもできます。選択したアタッチメントのグリッド(画面の右側)に移動したアタッチメントの値をオーバーライドするには、対象となるアタッチメントの[値]フィールドをダブルクリックします。アタッチメントのデータ型に応じて、[上書き値エディタ]またはリスト ボックスが表示されます。アタッチメントは、[データ ディクショナリ]タブの[アタッチメント]フォルダに作成されます。詳細は、「データ モデルへの外部ドキュメントの関連付け」を参照してください。
メモ
- マテリアライズド クエリー テーブルの作成直後には、データが追加されていません。システムが管理するマテリアライズド クエリー テーブルでは、REFRESH TABLE 文を使用して、マテリアライズド クエリー テーブルに明示的にデータを追加する必要があります。ユーザー管理のマテリアライズド クエリー テーブルでは、LOAD ユーティリティ、INSERT 文、または REFRESH TABLE 文を使用します。