分享
 
 
 

Oracle的實体化視圖管理

王朝oracle·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

Oracle的實体化視圖管理

作者: CCBZZP

1. 實体化視圖概念

實体化視圖管理是用于匯總,預計算,復制或分發數据的對象, 在大型的數据庫中使用它可以提高涉及到的SUM,COUNT,AVG,MIN,MAX等的表的查詢的速度,只要在實体化視圖管理上創建了統計,查詢优化器將自動的使用實体化視圖管理,這特性被稱為QUERY REWRITE(查詢重寫).与普通的視圖不同的是實体化視圖管理存儲數据,占据數据庫的物理空間的.

創建實体化視圖管理的用戶的權限必須有: CREATE MATERIALZED VIEW,CREATE TABLE,CREATE VIEW,SELECT等,如果在其他的模式中創建的話要在表上有CREATE ANY MATERIALIZED VIEW和SELECT權限.

要查詢重引用別的模式中的實体化視圖管理的話,還要有引用的表的GLOBAL QUERY REWRITE OR QUERY REWRITE權限.

如果計划使用實体化視圖管理的話,要修改參數文件中加: QUERY_REWRITE_ENABLE=TRUE

2. 創建實体化視圖注意事項:

創建之后,是否要填寫數據

多長時間刷新一次

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

3. 創建實体化視圖

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. 刪除實体化視圖

DROP MATERIALIZED VIEW TEST3;

5. 管理和評估實体化視圖的工具

要運行DBMSSNAP.SQL和DBMSSUM.SQL為實体化視圖創建包DBMS_MVIEW和DBMS_OLAP

DBMS_MVIEW用于執行管理活動的.

DBMS_OLAP确定實体化視圖是否能提高查詢的性能.

6. 刷新實体化視圖的方法

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

其中TEST3為實体化視圖名稱,'C'為刷新類型中的一种.

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

F-快速刷新和強制刷新

EXECUTE DBMS_MVIEW.REFRESH_ALL

不接受任何參數,全部刷新.

7. 實体化視圖間的完整性

在實体化視圖互相嵌套的時候會用不同的實体化視圖的刷新的方式和時間的不同而引起的數据的完整性的問題,對于這种情況,建議把相關聯的實体化視圖放在同一個刷新組中,協調進行刷新.

DBMS_REFRESH軟件包中提供MAKE過程來創建一個刷新組.

例如:

EXECUTE DBMS_REFRESH.MAKE

(NAME=>'TEST_GROUP',

LIST=>'LOC_EMP,LOC_DPT',

NEXT_DATE=>SYSDATE,

INTERVAL=>'SYSDATE+7');

上面創建一個實体化視圖刷新組TEST_GROUP,刷新周期為7天一次的.

兩個實体化視圖LOC_EMP和LOC_DPT通過一個參數來傳遞給過程的.

8. 向刷新組中增加刷新的實体化視圖

DBMS_REFRESH.ADD

(NAME IN VARCHAR2,

LIST IN VARCHAR2,|

TAB IN DBMS_UTILITY.UNCLARRAY,

LAX IN BOOLEAN:=FALSE);

9. 向刷新組中刪除刷新的實体化視圖

DBMS_REFRESH.SUBTRACT

(NAME IN VARCHAR2,

LIST IN VARCHAR2,|

TAB IN DBMS_UTILITY.UNCLARRAY,

LAX IN BOOLEAN:=FALSE);

10. 手工刪除一個刷新組

EXECUTE DBMS_REFRESH.REFRESH('TEST_GROUP');

也可以

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

11. 實体化視圖的日志管理

實体化視圖日志是一個表,保持對實体化視圖操作的歷史記錄.

要創建實体化視圖日志必須能在表上創建AFTER ROW触發器,必須有CREATE TRIGGER,CREATE TABLE權限

例如:

CREATE MATERIALIZED VIEW LOG ON BSEMPMS

TABLESPACE DATA_TEST

STORAGE(INITIAL 1M NEXT 1M PCTINCREASE 0)

PCTFREE 5 PCTUSED 90;

實体化視圖日志的PCTFREE應該很小,PCTUSED應該很大的.

通過ALTER MATERIALIZED VIEW LOG命令可以修改實体化視圖日志參數.

如:

ALTER MATERIALIZED VIEW LOG BSEMPMS PCTFREE 1;

要撤銷實体化視圖日志,可以用DROP MATERIALIZED VIEW LOG命令

如:

DROP MATERIALIZED VIEW LOG ON BSEMPMS;

12. 清除實体化視圖日志

要減少實体化視圖日志使用的空間,可用DBMS_MVIEW軟件包中的PURGE_LOG過程,PURGE_LOG有三個參數:

主表名稱,NUM變量,DELETE標志

NUM指最近最少刷新的實体化視圖數量

例如:

EXECUTE DBMS_MVIEW.PURGE_LOG

(MATER=>'BSEMPMS',

NUM=>1,

FLAG=>'DELETE');

BSEMPMS表的實体化視圖將清除實体化視圖最近最少使用的條目.

要在截斷主表的時候而不丟失實体化視圖日志條目,可以用命令

TRUNCATE TABLE BSEMPMS PRESERVE MATERIALIZED VIEW LOG;

13. 也可以用OEM來創建和管理實体化視圖

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有