网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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教程,数据库安全,数据库文摘
本月文章推荐
.用Control file恢复DB运行.
.Bitmap Index 的一点探究.
.如何保持Oracle数据库优良性能.
.怎样自动将数据导入 Oracle数据库.
.创建索引对SQL语句执行的影响.
.销售订单单行状态不对订单不关闭.
.ORA-01562 和 ORA-01628 问题解决.
.用分割DMP的方法导入和导出大型O.
.oracle中的联合主键查询问题!.
.ExactPapers Oracle 1Z0-001 200.
.Oracle数据库技术(21).
.oracle双机热备份方法.
.保持Oracle数据库的优良性能.
.oracle9204for AS3/10G2for AS4/.
.Oracle下的数据分片技术.
.Oracle数据库软件包远程溢出漏洞.
.[ORACLE] SQL语句的优化方法.
.ORACLE神话的破灭.
.PHP连ORACLE的类文件.
.Oracle PL/SQL语言基础.

Oracle的實体化視圖管理

发表日期:2008-2-9



  
                 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來創建和治理實体化視圖
   
上一篇:ORACLE大數据類型的操作之一CLOB 人气:612
下一篇:ORACLE数据库管理员的职责 人气:556
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐