分享
 
 
 

Oracle的实体化视图管理

王朝oracle·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

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- 王朝網路 版權所有