易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle笔记 物化视图

http://www.wangchao.net.cn/bbsdetail_1776477.html
 第 13 章 物化视图
  8.1.5企业版/个人版开始支持
  需要权限:GRANT CREATE MATERIALIZED VIEW,还必须直接赋予GRANT QUERY REWRITE.为实现查询重写,必须使用CBO.
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
  13.1 物化视图如何工作
  设置
  COMPATIBLE参数必须高于8.1.0
  QUERY_REWRITE_ENABLED = TRUE
  QUERY_REWRITE_INTEGRETY =
   ENFORCED - 查询仅用Oracle强制与保证的约束、规则重写;
   TRUSTED – 查询除用Oracle强制与保证的约束、规则,也可用用户设定的数据间的任何关系来重写;
   STALE_TOLERATED – 即便Oracle知道物化视图中数据过期(与事实表等不同步),也重写查询。
  创建物化视图的用户必须具有直接赋予的GRANT QUERY REWRITE权限,不能通过角色继续。
  内部机制
  全文匹配
  部分匹配:从from子句开始,优化器比较之后的文本,然后比较SELECT列表
  一般重写方法:
  数据充分
  关联兼容
  分组兼容
  聚集兼容
  13.2 确保使用物化视图
  约束
  考虑到现实环境的数据量,可以将主键、外键、非空等约束置为NOVALIDATE,并调整QUERY_REWRITE_INTEGRITY为TRUSTED,这样可以达到“欺骗”数据库的目的,但必须注重假如无法保证此类约束的真实有效,查询改写后可能造成结果不精确。
  维度
  实际就是指明已存在的表中各列的归并关系,从而关联事实表后形成的物化视图可用于向“上”归并(相当于用表中代表更高归并关系的列关联事实表)。标准语法:
  CREATE DIMENSION time_hierarchy_dim
   LEVEL day IS time_hierarchy.day
   LEVEL mmyyyy IS time_hierarchy.mmyyyy
   LEVEL yyyy IS time_hierarchy.yyyy
  HIERARCHY time_rollup
  (day CHILD OF mmyyyy CHILD OF yyyy)
  ATTRIBUTE mmyyyy
  DETERMINES mon_yyyy;
  13.3 DBMS_OLAP
  估计(物化视图)大小
  DBMS_OLAP.ESTIMATE_SUMMARY_SIZE(视图名, 视图定义, 估计行数, 估计字节数);
  其中后两个参数为NUMBER型输出参数。
  维度有效性检


相关文档:

oracle正则表达式

oracle的正则表达式(regular expression)简单介绍
目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境。
Oracle 10g正则表达式提高了SQL灵活性。有效的解决了数据有效性, 重复词的辨认, 无关的空白检测,或者分解多个正则组成
的字符串等问题。
Orac ......

ORACLE物化视图 Query Rewrite的一般理解之一

http://www.anysql.net/oracle/query_rewrite_01.html
  Query Rewrite 在数据仓库是是一个非常有用的技术, Tom在<<Effective Oracle by Design>>一书中将实体化视图(MView)称为是数据仓库的索引, 这是再贴切不过的了, 在OLTP中当SELECT语句的所有的字段都在索引中时, Oracle可以不从表读数据, 而直 ......

ORACLE物化视图 Query Rewrite的一般理解之三


  在Query Rewrite中大家看到这个技术离不开一样东西, 实体化视图, 简称MVIEW. 这是Oracle在8i中首先推出的技术, MVIEW除了在Query Rewrite中使用外, 还在Master - Slave复制中有很重要的作用, 在这儿我们主要关心Query Rewrite相关的地方, Oracle在Query Rewrite方面越来越强了, 在Oracle 8i中基本上是Text Ma ......

oracle中比较实用sql语句

-- 查看ORACLE 数据库中本用户下的所有表
SELECT table_name from user_tables;
-- 查看ORACLE 数据库中所有用户下的所有表
select user,table_name from all_tables;
-- 查看ORACLE 数据库中本用户下的所有列
select table_name,column_name from user_tab_columns;
-- 查看ORACLE 数据库中本用户下的所有列
se ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号