国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

ORACLE中的物化視圖

2024-08-29 13:30:46
字體:
供稿:網(wǎng)友

oracle中的物化視圖

 

      物化視圖是包括一個查詢結(jié)果的數(shù)據(jù)庫對像,它是遠程數(shù)據(jù)的的本地副本,或者用來生成基于數(shù)據(jù)表求和的匯總表。物化視圖存儲基于遠程表的數(shù)據(jù),也可以稱為快照。

       物化視圖可以查詢表,視圖和其它的物化視圖。

       通常情況下,物化視圖被稱為主表(在復制期間)或明細表(在數(shù)據(jù)倉庫中)。

       對于復制,物化視圖允許你在本地維護遠程數(shù)據(jù)的副本,這些副本是只讀的。如果你想修改本地副本,必須用高級復制的功能。當你想從一個表或視圖中抽取數(shù)據(jù)時,你可以用從物化視圖中抽取。

       對于數(shù)據(jù)倉庫,創(chuàng)建的物化視圖通常情況下是聚合視圖,單一表聚合視圖和連接視圖。

本篇我們將會看到怎樣創(chuàng)建物化視圖并且討論它的刷新選項。

       在復制環(huán)境下,創(chuàng)建的物化視圖通常情況下主鍵,rowid,和子查詢視圖。

1.主鍵物化視圖:

              下面的語法在遠程數(shù)據(jù)庫表emp上創(chuàng)建主鍵物化視圖

        sql> create materialized view mv_emp_pk

             refresh fast start with sysdate

            next  sysdate + 1/48

            with primary key

            as select * from [email protected]_db;

            materialized view created.

              注意:當用fast選項創(chuàng)建物化視圖,必須創(chuàng)建基于主表的視圖日志,如下:

            sql> create materialized view log on emp;

            materialized view log created.

2.rowid物化視圖

              下面的語法在遠程數(shù)據(jù)庫表emp上創(chuàng)建rowid物化視圖

      sql> create materialized view mv_emp_rowid

            refresh with rowid

             as select * from [email protected]_db;

            materialized view log created.

3.子查詢物化視圖

              下面的語法在遠程數(shù)據(jù)庫表emp上創(chuàng)建基于emp和dept表的子查詢物化視圖

            sql> create materialized view  mv_empdept

            as select * from [email protected]_db e

            where exists

             (select * from [email protected]_db d

            where e.dept_no = d.dept_no)

      materialized view log created.

       refresh 子句

                    [refresh [fast|complete|force]

            [on demand | commit]

            [start with date] [next date]

            [with {primary key|rowid}]]

 

       refresh選項說明:

a.      oracle用刷新方法在物化視圖中刷新數(shù)據(jù).

b.      是基于主鍵還是基于rowid的物化視圖

c.       物化視圖的刷新時間和間隔刷新時間

 

refresh方法-fast子句

       增量刷新用物化視圖日志(參照上面所述)來發(fā)送主表已經(jīng)修改的數(shù)據(jù)行到物化視圖中.如果指定refresh fast子句,那么應該對主表創(chuàng)建物化視圖日志

                    sql> create materialized view log on emp;

materialized view log created.

       對于增量刷新選項,如果在子查詢中存在分析函數(shù),則物化視圖不起作用。

 

refresh方法- complete子句

       完全刷新重新生成整個視圖,如果請求完全刷新,oracle會完成       完全刷新即使增量刷新可用。

 

refresh method – force 子句

       當指定force子句,如果增量刷新可用oracle將完成增量刷新,否則將完成完全刷新,如果不指定刷新方法(fast, complete, or force),force選項是默認選項

 

主鍵和rowd子句

       with primary key選項生成主鍵物化視圖,也就是說物化視圖是基于主表的主鍵,而不是rowid(對應于rowid子句). primary key是默認選項,為了生成primary key子句,應該在主表上定義主鍵,否則應該用基于rowid的物化視圖.

       主鍵物化視圖允許識別物化視圖主表而不影響物化視圖增量刷新的可用性。

       rowid物化視圖只有一個單一的主表,不能包括下面任何一項:

n         distinct 或者聚合函數(shù).

n         group by,子查詢,連接和set操作

 

刷新時間      

       start with子句通知數(shù)據(jù)庫完成從主表到本地表第一次復制的時間,應該及時估計下一次運行的時間點, next 子句說明了刷新的間隔時間.

            sql> create materialized view mv_emp_pk

                     refresh fast

                  start with sysdate

                  next  sysdate + 2

                  with primary key

                  as select * from [email protected]_db;

                  materialized view created.

在上面的例子中,物化視圖數(shù)據(jù)的第一個副本在創(chuàng)建時生成,以后每兩天刷新一次.

 

總結(jié)

物化視圖提供了可伸縮的基于主鍵或rowid的視圖,指定了刷新方法和自動刷新的時間。

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴仁县| 岫岩| 酉阳| 清新县| 长葛市| 财经| 靖安县| 长乐市| 阜康市| 黑龙江省| 宿州市| 株洲县| 博白县| 页游| 广河县| 扎囊县| 义马市| 高台县| 南充市| 丁青县| 义马市| 井研县| 逊克县| 民勤县| 敖汉旗| 辽阳县| 合山市| 伊金霍洛旗| 革吉县| 丰台区| 固阳县| 讷河市| 周至县| 普安县| 象山县| 岚皋县| 平邑县| 台北县| 丹东市| 东明县| 资阳市|