解析OracleOLAP使用MView刷新Cube(2)

来源:未知 责任编辑:责任编辑 发表时间:2013-12-18 11:37 点击:

  11g 有一些新的跟aw 相关的试图,你可以查看
  SELECT * FROM dba_objects WHERE object_name LIKE ‘%AW%’;
  其中包括了dimension 和cube 的元数据,dimension 和cube 的统计图信息(analyze 之后收集的), dimension 和cube mv 的元数据, cube 的分区建议和储存建议。具体查看oracle 11g 的文档。
  默认的你创建cube 的时候,它会创建对应的relational dimension (awm 里面是这样, 手工从pl/sql 里面创建没试过),你可以删除relational dimension ,cube 里面的dimension 是不会跟着删除的。
  relational dimension的一些操作:
  查看dimension 的pl/sql
  exec dbms_dimension.describe_dimension(global.product_dimension);

 输出:
  DIMENSION GLOBAL.PRODUCT_DIMENSION
  LEVEL FAMILY IS GLOBAL.PRODUCT_DIM.FAMILY_ID
  LEVEL ITEM IS GLOBAL.PRODUCT_DIM.ITEM_ID
  LEVEL TOTAL IS GLOBAL.PRODUCT_DIM.TOTAL_ID
  LEVEL class IS GLOBAL.PRODUCT_DIM.CLASS_ID
  ATTRIBUTE FAMILY LEVEL FAMILY DETERMINES GLOBAL.PRODUCT_DIM.FAMILY_DSC
  ATTRIBUTE ITEM LEVEL ITEM DETERMINES GLOBAL.PRODUCT_DIM.ITEM_DSC
  ATTRIBUTE TOTAL LEVEL TOTAL DETERMINES GLOBAL.PRODUCT_DIM.TOTAL_DSC
  ATTRIBUTE class LEVEL class DETERMINES GLOBAL.PRODUCT_DIM.CLASS_DSC
  启用cube MView 刷新
  实际启用cube mv 刷新是很简单的, 主要是前提条件都满足了, 在awm 的cube 里面Materialized Views 选项卡里面点击 Enable Materalized View 选项和 Enable Query Rewrite 选项。
  刷新模式有Complete , Fast ,Force 。其他可选方法还有PCT (Partition Change Tracking) 和Fast Solve;
  1. Complete – 全部删除再全部装载。
  2. Fast – 使用mv log 记录变化的记录,并且只更新这些记录和对应的聚合记录。
  3. Force-  默认使用fast, 如果fast 不可用,才使用complete。
  4. Partition Change Tracking:  只刷新部分分区的数据,这在awm 里面没有。
  5. Fast Solve:  加载所有的原始数据,但是只计算新数据的聚合值,awm 里面没有。
  mv不会计算calculated measures , 并且随着mv 的体积增大,创建和刷新的速度会变慢(不是呈线性下降),如果你mv 过大,你应该考虑分割成几个sub cube , 或者去掉一些不用的属性。
  你选择使用mv 来刷新数据之后,oracle 会为每一个dimension 的每个hierarchy 都创建一个mv , 并且mv 的名字都是以CB$ 开头, 你是不能控制这些mv 的,只能控制cube . 以下的sql 可以得到所有的cube 对应的mv。
  启用Query Rewrite
  要使用query rewrite 必须满足以下条件:
  要有create mv 权限和其他相关对象的权限。
  在init.ora 文件中设置QUERY_REWRITE_ENABLED= TRUE 或FORCE ,在session 里面也可以。
  注意awm 里面的检查信息
  注意查看Relational Schema Advisor ,注意这很重要,Relational Schema Advisor 在mv 选项卡的最下面,里面会列出你的schema 不符合query rewrite 的条件。它会给出sql 让你执行,注意查看这些sql 以避免query rewrite 失败。
  你也可能会想要改变约束类型, 从enforced , trusted , norely 到‘RELY’ 因为oracle执行计划消耗会更小。
  alter table "price_fact" add constraint "xxx_constraint" PRIMARY KEY (ITEM_ID, MONTH_ID, UNIT_PRICE, UNIT_COST) RELY enable validate ;

 刷新MView
  刷新时间点上有三种方式:
  on demand , 等待手工刷新
  start next  ,定时到将来刷新
  推荐的维护mv 刷新还是使用awm , 如果是定时的话就使用下面一些pl/sql。

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Table函数使用简介
  • Oracle数据库Constraint约束的常用操作及异常处理
  • Bulk Collect性能分析(zz)
  • export/import的使用
  • OCP043第十五讲 Database Security
  • ORACLE10gr2数据导入MySQL方案
  • oracle 让sys用户可以使用isqlplus
  • 在oracle数据库下使用iSQL*Plus DBA访问数据库
  • Oracle行列转换小结
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1