ORACLE11-性能-物化视图

多张数据表组成的视图,查询起来非常缓慢。可通过物化视图进行优化。

1,建立视图sql中基表的log(用作后续的fash刷新(增量刷新))

create MATERIALIZED VIEW LOG ON <基表名> with primary key;
alter MATERIALIZED VIEW LOG ON <基表名> add rowid;

ps: 这里通过rowid来建立,应该可以通过primary key来构建,不清楚为什么在建立物化视图是会提示错误。

2,建立物化视图:

create materialized view <视图名>
refresh fast on commit --基表有提交时立即更新
as 
(SELECT rowid rid, ... from ..);

也可以设置为定时自动更新

create materialized view <视图名>
refresh fast on demand
start with sysdate
next sysdate+1/1440 with primary key --每分钟更新一次
as 
(SELECT rowid rid, ... from ..);

!!!注意:存在物化视图LOG的库不能直接exp导出备份,必须先删除LOG才可以否则会报错

EXP-00008: 遇到 ORACLE 错误 1455
ORA-01455: 转换列溢出整数数据类型
EXP-00000: 导出终止失败

执行下面sql删除物化视图LOG

drop materialized VIEW log on <基表名>;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容