ORACLE11-性能-物化视图

2017-11-11  本文已影响0人  阿尔卡雷特

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

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 <基表名>;
上一篇 下一篇

猜你喜欢

热点阅读