そのような場合、テーブルから必要な属性のみを表示できる仮想テーブルを作成できなければなりません。 これは、この記事で説明するビューとマテリアライズド・ビューを介して可能です。 また、ビューとマテリアライズドビューの違いについて、以下の比較表を参照しながら説明します。
比較表
比較基準 | 見る | マテリアライズドビュー |
---|---|---|
基本 | ビューは保存されることはなく、表示されるだけです。 | マテリアライズドビューはディスクに保存されます。 |
定義する | ビューは、1つ以上の実表またはビューから形成された仮想表です。 | マテリアライズドビューは、基本テーブルの物理コピーです。 |
更新 | ビューは仮想テーブル(View)が使用されるたびに更新されます。 | マテリアライズドビューは手動で、またはトリガを使用して更新する必要があります。 |
速度 | 処理が遅い | 高速処理 |
メモリ使用量 | ビューはメモリスペースを必要としません。 | マテリアライズドビューはメモリスペースを利用します。 |
構文 | ビューVを作成 | マテリアライズド・ビューを作成Vビルド[句]リフレッシュ[句]オン[トリガ] |
ビューの定義
ViewはCreate Viewコマンドを使用して作成された仮想テーブルです。 この仮想テーブルには、[ビューの作成]コマンドでクエリ式から取得したデータが含まれています。 ビューは、1つ以上の実表またはビューから作成できます。 元の実表を照会するのと同じようにビューを照会できます。
Viewが事前に計算 されてディスクに保存されるのではなく、Viewが使用またはアクセスされるたびにViewが計算されます。 ビューが使用されるときはいつでも、その特定の瞬間にCreate Viewコマンドのクエリ式が実行されます。 したがって、あなたは常にビューで更新されたデータを取得します。
Viewの内容を更新すると元のテーブルに反映され、元のベーステーブルに変更が加えられた場合はそのViewに反映されます。 しかし、これはビューのパフォーマンスを遅くします 。 たとえば、ビューは2つ以上のテーブルの結合から作成されます。 その場合、ビューが使用されるたびに結合を解決するために時間を費やす必要があります。
しかし、 ストレージスペースを必要としない という利点があります。 複雑なデータベースのカスタマイズされたビューを作成できます。 ユーザーがデータベース内の機密情報にアクセスするのを制限できます。 複数のテーブルから単一のカスタマイズされたビューにデータを取得することで、クエリの複雑さを軽減します。
それでは、Viewの構文を見てみましょう。
ビューVを作成
すべてのビューが更新可能ではないことを忘れないでください。 DISTINCT句、 Group By句、 CHECK制約(チェック制約に違反する場合)を使用して作成されたビューのように、 読み取り専用オプションは更新できません。
マテリアライズドビューの定義
マテリアライズドビューは、元のベーステーブルの物理コピーです。 マテリアライズドビューは、元の基本テーブルのスナップショットまたは画像のようなものです。 Viewと同様に、 Create Materialized Viewコマンドのクエリ式から取得されたデータも含まれます 。
しかし、ビューとは異なり、マテリアライズドビューは事前に計算 され、オブジェクトのようにディスクに格納され、使用されるたびに更新されることはありません 。 代わりに、マテリアライズドビューは手動で、またはトリガを使用して更新する必要があります 。 マテリアライズドビューを更新するプロセスは、 マテリアライズドビューのメンテナンスと呼ばれます 。
マテリアライズドビューは、ビューに比べて応答が速くなります。 これは、マテリアライズドビューが事前計算されているため、クエリの解決に時間を浪費したり、マテリアライズドビューを作成するクエリに参加したりすることがないためです。 これは、マテリアライズドビューに対して行われたクエリに対する応答が速くなります。
マテリアライズドビューの構文を確認しましょう。
マテリアライズドビューVを作成する
ビルド[句]リフレッシュ[タイプ]
ON [トリガ]
として
Build節が決定する場所、マテリアライズド・ビューを作成するタイミング。 リフレッシュ・タイプはマテリアライズド・ビューを更新する方法を決定し、トリガーはマテリアライズド・ビューを更新するタイミングを決定します。
マテリアライズドビューは通常、 データウェアハウスで使用されます 。
ビューとマテリアライズドビューの主な違い
- ビューとマテリアライズドビューの基本的な違いは、ビューは物理的にディスクに格納されていないことです。 一方、マテリアライズドビューはディスクに保存されます。
- ビューは、クエリ式の結果として作成された仮想テーブルとして定義できます。 ただし、マテリアライズド・ビューは、実表の物理コピー 、画像またはスナップショットです。
- ビューを使用するたびにビューを作成するクエリが実行されるため、ビューは常に更新されます。 一方、マテリアライズドビューは手動で、またはトリガを適用して更新されます 。
- マテリアライズドビューは事前計算されているため、マテリアライズドビューはView よりも応答が速くなります。
- マテリアライズドビューはディスクに格納されているメモリスペースを使用しますが、ビューは単なる表示であり、メモリスペースを必要としません。
結論:
マテリアライズドビューは、ビューに比べて応答が速くなります。 しかし、Viewは常に最新の情報をユーザーに提供します。