首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle物化视图

Oracle物化视图
EN

Stack Overflow用户
提问于 2014-09-08 08:52:25
回答 1查看 199关注 0票数 3

根据oracle文档,不能使用快速刷新方法刷新聚合物化视图。我在Oracle中找到了这个例子:6002.htm

代码语言:javascript
复制
CREATE MATERIALIZED VIEW LOG ON times
   WITH ROWID, SEQUENCE (time_id, calendar_year)
   INCLUDING NEW VALUES;

CREATE MATERIALIZED VIEW LOG ON products
   WITH ROWID, SEQUENCE (prod_id)
   INCLUDING NEW VALUES;

CREATE MATERIALIZED VIEW sales_mv 
   BUILD IMMEDIATE 
   REFRESH FAST ON COMMIT 
   AS  
   SELECT t.calendar_year, p.prod_id, 
      SUM(s.amount_sold) AS sum_sales
       FROM times t, products p, sales s
      WHERE t.time_id = s.time_id AND p.prod_id = s.prod_id
      GROUP BY t.calendar_year, p.prod_id;

每次尝试使用聚合和快速刷新时,我都会出错。

在使用快速刷新和聚合功能时,有什么特别的提示吗?

亲切的问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-21 10:39:46

根据我的调查,为了创建具有聚合功能和快速刷新方法的MV,您的MV和MV日志应该具有特殊的结构,以便查看在脚本下面运行的MV和MV日志的正确结构:

代码语言:javascript
复制
begin
 dbms_advisor.tune_mview(task_name=>:t,
 mv_create_stmt=>'create materialized view mv1 refresh fast 
as select job,sum(sal)    from emp group by job');
end;

然后执行下面的查询,查看MV和MV日志所需的结构:

代码语言:javascript
复制
select  dbms_lob.substr( statement, 4000, 1 ), statement from user_tune_mview
where task_name='TASK_2042' order by action_id;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25720486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档