暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle物化视图

在路上 2024-12-27
194

1.概念

materialized view不仅存储了sql的定义,还存储了数据。预先计算并保存表连接或聚集等耗时较多的操作的结果,查询时可以避免进行这些耗时的操作,从而快速得到结果。

缺点:无法实现实时查询

优点:可以解决数据查询效率过慢问题,减轻了查询导致的数据库服务器的处理压力。(事实上是把压力转移到了服务器不处理请求的时间段,如晚上和凌晨)

2.使用物化视图

注意:创建时不允许有子查询语句存在,否则编译不通过。

刷新方式

FAST:刷新采用增量刷新COMPLETE:刷新对整个物化视图进行完全的刷新
FORCE:这个方式则Oracle在刷新时会去判断是否可以进行快速刷新,如果可以则采用FAST方式,否则采用COMPLETE的方式
NEVER:指物化视图不进行任何刷新。

创建语句

CREATE MATERIALIZED VIEW MV_TEST
       BUILD IMMEDIATE                --立即创建,deferred创建时不生成数据
       REFRESH FORCE                  --如果可以快速刷新则进行快速刷新,否则完全刷新
       ON DEMAND                      --用户需要时刷新,commit表中数据提交时刷新
       START WITH SYSDATE             --第一次刷新时间
       NEXT TRUNC(SYSDATE+1)          --刷新时间间隔每天一次
       AS SELECT * FROM test A;   --创建的SQL语句

3.失效处理。如果plsql看到物化视图上面有红色的×,则表示物化视图失效了,或者执行下面的sql

SELECT T.status, T.OBJECT_NAME, T.OBJECT_TYPE, T.*
  FROM dba_OBJECTS T
 WHERE T.status <> 'VALID'
   and t.OBJECT_TYPE = 'MATERIALIZED VIEW';

解决失效的物化视图是重新编译:删除-->重新创建。drop materialized view xxx;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论