0

Oracle の具体化されたビューとは何ですか? それの用途は何ですか?このトピックをネットで検索しましたが、明確なアイデアを得ることができません。それでは、このトピックを明確な例で説明してください。トピックを明確に理解することが私にとってより役立つように。

4

3 に答える 3

7

マテリアライズド ビューは、RDMS が提供するメカニズムであり、追加のストレージ消費と引き換えにクエリ パフォーマンスを向上させます。

たとえば、データを返すのに長い時間がかかる、10 個のテーブル結合を含む非常に大きなクエリがあるとします。クエリをマテリアライズド ビューに変換すると、このクエリの結果はディスク上の特別な db テーブルに自動的にマテリアライズされます。さらに優れているのは、行が追加/更新/削除されると、マテリアライズド ビューに自動的に反映されることです。

ただし、この便利なツールのトレードオフは、基になるテーブルの挿入と更新が遅くなることです。マテリアライズド ビューは、Oracle IMHO の数少ない利点の 1 つです。

2 つのテーブルの結合の例を次に示しますMATERIALIZED VIEW

CREATE MATERIALIZED VIEW MV_Test
  NOLOGGING
  CACHE
  BUILD IMMEDIATE 
  REFRESH FAST ON COMMIT 
  AS
    SELECT V.*, P.*, V.ROWID as V_ROWID, P.ROWID as P_ROWID, (2+1) as Calc1, 'Constant1' as Const1
    FROM TPM_PROJECTVERSION V
         INNER JOIN TPM_PROJECT P ON P.PROJECTID = V.PROJECTID

この同じクエリを毎回実行する代わりに、より高速に実行される新しいビューに対してこの単純なクエリを実行することができます。本当にすばらしいのは、派生列と計算列も追加できることです。

SELECT * FROM MV_Test WHERE ...

PS

MATERIALIZED VIEWS万能薬ではありません。頻繁に使用される多数の結合を含む非常に遅いクエリがあり、読み取りが書き込みをはるかに上回る場合に使用してください。

于 2013-09-27T06:27:55.627 に答える
0

マテリアライズド ビューとは

マテリアライズド ビューは、ある時点からのターゲット マスターのレプリカです。マスターは、マスター・サイトのマスター表またはマテリアライズド・ビュー・サイトのマスター・マテリアライズド・ビューのいずれかです。マルチマスター・レプリケーションでは、表は他のマスター・サイトによって継続的に更新されますが、マテリアライズド・ビューは、図3-1に示すように、単一のマスター・サイトまたはマスター・マテリアライズド・ビュー・サイトからの個々のバッチ更新(リフレッシュと呼ばれる)を通じて、1つ以上のマスターから更新されます。 . 図 3-1 の矢印は、データベース リンクを表します。

-- http://docs.oracle.com/cd/A97630_01/server.920/a96567/repmview.htm

例 -- 従業員テーブルのマテリアライズド ビューを作成します。更新は好みに合わせて設定できるため、上記のリンクのドキュメントを参照してください。

CREATE MATERIALIZED VIEW employee_mv
REFRESH FORCE
BUILD IMMEDIATE 
ON DEMAND
AS
SELECT * FROM employees

マテリアライズド ビューには、データのサブセットのみを含めることもできます

CREATE MATERIALIZED VIEW employee_mv
REFRESH FORCE
BUILD IMMEDIATE 
ON DEMAND
AS
SELECT name, ssn, address FROM employees
于 2013-09-27T06:25:03.570 に答える