网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle9i的启动和关闭.
.常用的档案, 与它们的延伸名称, .
.学习:怎样才是一个真正的DBA?.
.关于系统的物理上不连续的碎片数.
.在oracle中编写树级代码.
.RedhatLinux on my LAPTOP.
.sendmail支持的操作系统有哪些.
.excel文件的导入-oracle.
.Oracle 10g 可传输表空间现在可以.
.Oracle数据库技术(20).
.ORACLE问题,每天10问(十二).
.如何自制 bootdisk.
.Oracle PL/SQL语言初级教程之完整.
.Oracle 10G Beta版在Win2000上安.
.Oracle10g 控制文件的改变.
.Oracle不同数据库间对比分析脚本.
.Oracle9i 数据仓库执行性能增强.
.把表里的数据导成insert语句.
.Oracle 8i中字符集乱码问题.
.Oracle组件实现动态Web数据库.

Oracle的实体化视图管理

发表日期:2008-2-9



  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来创建和治理实体化视图
上一篇:oracle9i中Rman的备份使用点滴 人气:772
下一篇:C#中使用Oracle 存储过程笔记 人气:1138
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐