UDN-企业互联网技术人气社区

板块导航

浏览  : 1592
回复  : 4

[讨论交流] 物化视图的使用

[复制链接]
bisal的头像 楼主
发表于 2015-4-21 17:20:22 | 显示全部楼层 |阅读模式
初步接触物化视图,感觉他和普通视图的区别,主要是物化视图占用存储空间,可以基于基表的更新自动刷新,让应用直接获得像聚类、统计这些消耗资源的SQL执行结果,不会像视图那样,select时其实就是执行一次背后的SQL。

那对于物化视图的场景是否是:
1. 需要基表不会频繁更新,如果选择on demand模式,则更需要不能频繁更新。如果选择on commit,更新太频繁可能会导致正常交易操作的commit时间受影响。
2. 我感觉如果是OLTP应用中使用物化视图,好的场景是当需要对历史记录做统计查询时,用物化视图会有好处,如果是对当天交易情况做实时统计查询,用了物化视图,单对这个查询来说可能会快,但对正常的交易操作可能会有影响,因为影响了commit,是这样理解么?
请指点,谢谢。

发表于 2015-4-21 17:47:52 | 显示全部楼层

基本认同。补充说明个人理解:
基于对普通视图是“查询语句”,物化视图是“查询结果”的认识,故:
1、当查询较复杂,运行时间较长时,直接把查询的结果保存下来,以后对该结果进行查询,性能上会好很多。
2、当结果经常变化时(基表数据经常变化,从而对结果产生影响),物化视图需要额外的开锁进行维护,以确保当前存储的结果反映了基表数据的变化,或者说与基表数据相符。因此,对这种情况,要进行评估和测试,以保证因此而负出的额外代价是值得的。

另外,对于应用场景中提及的“影响了COMMIT",没明白是何意?
使用道具 举报

回复

bisal的头像 楼主
发表于 2015-4-21 19:05:32 | 显示全部楼层

bfc99 发表于 2015-2-17 09:48


基本认同。补充说明个人理解:
基于对普通视图是“查询语句”,物化视图是“查询结果”的认识,故:
1、当 ...

"另外,对于应用场景中提及的“影响了COMMIT",没明白是何意?"
没说清楚,我的意思是如果物化视图对应的基表经常更新,则基表更新时做commit,还需要等待物化视图的刷新,会增加commit的时间,也就是说这种情况下,基表的commit除了等待LGWR写日志的完成,还要等待on commit方式的物化视图刷新的完成,是这样?
使用道具 举报

回复

发表于 2015-4-21 20:16:05 | 显示全部楼层


bisal 发表于 2015-2-17 10:47


"另外,对于应用场景中提及的“影响了COMMIT",没明白是何意?"
没说清楚,我的意思是如果物化视图对应的 ...

物化视图的刷新分两种,自动和手动,自动又可以设置为自动定时和实时,实时也就是你贴里说的on commit,这点你说的是对的,这种刷新会影响基表操作的响应时间,或者说是操作的性能,而定时刷新方式,则需要考虑数据的实时性是否能满足需求。手动就是运行命令去刷新。
物化视图的刷新,又分为全量刷新和增量刷新,全量刷新就是先删除后插入;而增量刷新则只更新最近变化的信息,这需要在基表创建日志。
当然,上面谈到的各种场景,都有相应的限制和应用条件,具体可以去查参考手册。
使用道具 举报

回复

发表于 2018-7-12 13:02:10 | 显示全部楼层
有没相关的操作手册,我的语义模型创建了物化视图表,但一直没写入数据,在调度执行里一直是waiting状态
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部