本站不再更新,歡迎光臨 java開發(fā)技術(shù)網(wǎng)
          隨筆-230  評(píng)論-230  文章-8  trackbacks-0
            實(shí)體化視圖管理是用于匯總,預(yù)計(jì)算,復(fù)制或分發(fā)數(shù)據(jù)的對(duì)象, 在大型的數(shù)據(jù)庫中使用它可以提高涉及到的SUM,COUNT,AVG,MIN,MAX等的表的查詢的速度,只要在實(shí)體化視圖管理上創(chuàng)建了統(tǒng)計(jì),查詢優(yōu)化器將自動(dòng)的使用實(shí)體化視圖管理,這特性被稱為QUERY REWRITE(查詢重寫).與普通的視圖不同的是實(shí)體化視圖管理存儲(chǔ)數(shù)據(jù),占據(jù)數(shù)據(jù)庫的物理空間的.

            創(chuàng)建實(shí)體化視圖管理的用戶的權(quán)限必須有: CREATE MATERIALZED VIEW,CREATE TABLE,CREATE VIEW,SELECT等,如果在其他的模式中創(chuàng)建的話要在表上有CREATE ANY MATERIALIZED VIEW和SELECT權(quán)限.

            要查詢重引用別的模式中的實(shí)體化視圖管理的話,還要有引用的表的GLOBAL QUERY REWRITE OR QUERY REWRITE權(quán)限.

            如果計(jì)劃使用實(shí)體化視圖管理的話,要修改參數(shù)文件中加: QUERY_REWRITE_ENABLE=TRUE

            2. 創(chuàng)建實(shí)體化視圖注意事項(xiàng):

            創(chuàng)建之后,是否要填寫數(shù)據(jù)

            多長時(shí)間刷新一次

            使用那種刷新類型: COMPLE(完全),FAST(快速),FORCE(強(qiáng)制),NEVER(從不)

            3. 創(chuàng)建實(shí)體化視圖

            CREATE MATERIALIZED VIEW TEST3

            PCTFREE 0 TABLESPACE MTEST

            STORAGE (INITIAL 1M NEXT 1M PCTINCREASE 0)

            BUILD DEFERRED

            REFRESH FAST ON COMMIT

            ENABLE QUERY REWRITE

            AS SELECT EMP_NO,SUM(QTY_PSC) AS QTY_PSC FROM BSEMPMS GROUP BY EMP_NO;

            4. 刪除實(shí)體化視圖

            DROP MATERIALIZED VIEW TEST3;

            5. 管理和評(píng)估實(shí)體化視圖的工具

            要運(yùn)行DBMSSNAP.SQL和DBMSSUM.SQL為實(shí)體化視圖創(chuàng)建包DBMS_MVIEW和DBMS_OLAP

            DBMS_MVIEW用于執(zhí)行管理活動(dòng)的.

            DBMS_OLAP確定實(shí)體化視圖是否能提高查詢的性能.

            6. 刷新實(shí)體化視圖的方法

            EXECUTE DBMS_MVIEW.REFRESH('TEST3','C');

            其中TEST3為實(shí)體化視圖名稱,'C'為刷新類型中的一種.

            刷新類型有: C-完全刷新

            F-快速刷新和強(qiáng)制刷新

            EXECUTE DBMS_MVIEW.REFRESH_ALL

            不接受任何參數(shù),全部刷新.

            7. 實(shí)體化視圖間的完整性

            在實(shí)體化視圖互相嵌套的時(shí)候會(huì)用不同的實(shí)體化視圖的刷新的方式和時(shí)間的不同而引起的數(shù)據(jù)的完整性的問題,對(duì)于這種情況,建議把相關(guān)聯(lián)的實(shí)體化視圖放在同一個(gè)刷新組中,協(xié)調(diào)進(jìn)行刷新.

            DBMS_REFRESH軟件包中提供MAKE過程來創(chuàng)建一個(gè)刷新組.

            例如:

            EXECUTE DBMS_REFRESH.MAKE

            (NAME=>'TEST_GROUP',

            LIST=>'LOC_EMP,LOC_DPT',

            NEXT_DATE=>SYSDATE,

            INTERVAL=>'SYSDATE+7');

            上面創(chuàng)建一個(gè)實(shí)體化視圖刷新組TEST_GROUP,刷新周期為7天一次的.

            兩個(gè)實(shí)體化視圖LOC_EMP和LOC_DPT通過一個(gè)參數(shù)來傳遞給過程的.

            8. 向刷新組中增加刷新的實(shí)體化視圖

            DBMS_REFRESH.ADD

            (NAME IN VARCHAR2,

            LIST IN VARCHAR2,|

            TAB IN DBMS_UTILITY.UNCLARRAY,

            LAX IN BOOLEAN:=FALSE);

            9. 向刷新組中刪除刷新的實(shí)體化視圖

            DBMS_REFRESH.SUBTRACT

            (NAME IN VARCHAR2,

            LIST IN VARCHAR2,|

            TAB IN DBMS_UTILITY.UNCLARRAY,

            LAX IN BOOLEAN:=FALSE);

            10. 手工刪除一個(gè)刷新組

            EXECUTE DBMS_REFRESH.REFRESH('TEST_GROUP');

            也可以

            EXECUTE DBMS_REFRESH.DESTROY(NAME=>'TEST_GROUP');

            11. 實(shí)體化視圖的日志管理

            實(shí)體化視圖日志是一個(gè)表,保持對(duì)實(shí)體化視圖操作的歷史記錄.

            要?jiǎng)?chuàng)建實(shí)體化視圖日志必須能在表上創(chuàng)建AFTER ROW觸發(fā)器,必須有CREATE TRIGGER,CREATE TABLE權(quán)限

            例如:

            CREATE MATERIALIZED VIEW LOG ON BSEMPMS

            TABLESPACE DATA_TEST

            STORAGE(INITIAL 1M NEXT 1M PCTINCREASE 0)

            PCTFREE 5 PCTUSED 90;

            實(shí)體化視圖日志的PCTFREE應(yīng)該很小,PCTUSED應(yīng)該很大的.

            通過ALTER MATERIALIZED VIEW LOG命令可以修改實(shí)體化視圖日志參數(shù).

            如:

            ALTER MATERIALIZED VIEW LOG BSEMPMS PCTFREE 1;

            要撤銷實(shí)體化視圖日志,可以用DROP MATERIALIZED VIEW LOG命令

            如:

            DROP MATERIALIZED VIEW LOG ON BSEMPMS;

            12. 清除實(shí)體化視圖日志

            要減少實(shí)體化視圖日志使用的空間,可用DBMS_MVIEW軟件包中的PURGE_LOG過程,PURGE_LOG有三個(gè)參數(shù):

            主表名稱,NUM變量,DELETE標(biāo)志

            NUM指最近最少刷新的實(shí)體化視圖數(shù)量

            例如:

            EXECUTE DBMS_MVIEW.PURGE_LOG

            (MATER=>'BSEMPMS',

            NUM=>1,

            FLAG=>'DELETE');

            BSEMPMS表的實(shí)體化視圖將清除實(shí)體化視圖最近最少使用的條目.

            要在截?cái)嘀鞅淼臅r(shí)候而不丟失實(shí)體化視圖日志條目,可以用命令

            TRUNCATE TABLE BSEMPMS PRESERVE MATERIALIZED VIEW LOG;

          posted on 2008-07-14 18:29 有貓相伴的日子 閱讀(445) 評(píng)論(0)  編輯  收藏 所屬分類: BI

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          本站不再更新,歡迎光臨 java開發(fā)技術(shù)網(wǎng)
          主站蜘蛛池模板: 林西县| 马关县| 建昌县| 天柱县| 格尔木市| 天全县| 宜黄县| 甘洛县| 九江市| 韶关市| 镇坪县| 纳雍县| 古浪县| 阳泉市| 福建省| 沽源县| 景东| 安庆市| 枣庄市| 鹰潭市| 德惠市| 沽源县| 六枝特区| 红安县| 永嘉县| 西乡县| 东安县| 浙江省| 双辽市| 防城港市| 调兵山市| 嵩明县| 河津市| 神农架林区| 合作市| 明星| 瑞金市| 凤山县| 壤塘县| 昆明市| 华阴市|