龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

解析OracleOLAP使用MView刷新Cube(1)(3)

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
刷新MView 刷新时间点上有三种方式: on demand, 等待手工刷新 start next,定时到将来刷新 推荐的维护mv 刷新还是使用awm , 如果是定时的话就使用下面一些

刷新MView

刷新时间点上有三种方式:

on demand , 等待手工刷新

start next  ,定时到将来刷新

推荐的维护mv 刷新还是使用awm , 如果是定时的话就使用下面一些pl/sql。

exec dbms_cube.build(’PRICE_CUBE’);   — 这是全刷新

可以一句话包含多个cube 或dimension , exec dbms_cube.build(’PRICE_CUBE, xxx_CUBE , xxx_dimension’);

刷新mv:

exec dbms_mview.refresh(’CB$PRODUCT_PRIMARY’,'C’);

C 当然是代表complete , 这会刷新所有跟这个dimension 的这个hierarchy 有关的mv,

或者exec dbms_mview.refresh(’CB$PRICE_CUBE’,'F’) 这会以force 方式刷新这个cube 的它对应的mv。

你可以说使用以下sql 查看mv 的状态:

  1. select owner||’.'||mview_name cube_mv, rewrite_enabled, staleness  
  2.  
  3. from all_mviews  
  4.  
  5. where container_name like ‘CB$%’; 

Staleness 这一栏下有fresh 和stale 两种状态,fresh 表示所有数据都已经最新了, stale 表示有新的数据没有刷新但是mv 仍然可用。

MView的一些注意事项

如果query rewrite 没有使用mv ,则检查:

  1. query_rewrite_enabled =FORCE 
  2.  
  3. query_rewrite_integrity=stale_tolerated 

使用dbms_mview.explain_rewrite 查看为什么query rewrite 没有成功。

有关Oracle数据库的更多知识请参考我们网站的Oracle专栏:

http://database.51cto.com/oracle/

精彩图集

赞助商链接