生成并刷新实体化视图,且构成一个精心设计的实体化视图树(建立基础性的实体化视图,包括叠罗汉式或嵌入式实体化视图)是报表系统的重要准备工作和前提。

对实体化视图的刷新主要是为了保证现行的与底层的明细数据同步,反映数据最新的变化。

DBMS_MVIEW过程包提供的刷新操作:

提供了三种不同类型的刷新操作

  • DBMS_MVIEW.REFRESH 更新一个或更多的实体化视图
  • DBMS_MVIEW.REFRESH_ALL_MVIEWs 更新全部的实体化视图
  • DBMS_MVIEW.REFRESH_DEPENDENT 更新全部等待的实体化视图
  • 例如:
    DBMS_MVIEW.REFRESH('cal_month_sales_mv','f',' ',true,false,0,0,0,false);
      
    监控更新:
    一般都是通过建立专用视图,用于监控实体化视图的刷新状态
    例如:列出所有编译/刷新有效的实体化视图
SQL> create view mview_valid_list_v as
  2  select mview_name,staleness,last_refresh_type,compile_state
  3  from user_mviews
  4  where compile_state='valid' order by compile_state;

 

建立一个视图,列出所有编译/刷新无效的实体化视图

  1  create view mview_none_valid_list_v as
  2  select mview_name,staleness,last_refresh_type,compile_state
  3  from user_mviews
  4* where compile_state!='valid' order by compile_state

 

建立一个视图,对实体化视图的编译/刷新状态进行统计监测

SQL> create view mview_state_v as
  2  select compile_state,count(*) comp_state_cnt
  3  from user_mviews group by compile_state;
posted on 2010-06-07 16:46  SIRC_Detaillee  阅读(586)  评论(0)    收藏  举报