DB2 基础: 物化查询表简介

【背景说明】

最近一个项目中,根据客户需求做了分层的统计汇总功能,分层指类似总公司、分公司、部门的三层架构,各层之间是有关联的,不同的角色查看的统计信息也不同。示意图如下(请不要对号入座,该示意图与实际项目无关,只是举个例子):



  

【设计思路】

为了保证统计汇总信息满足 { 总公司数据 = 各分公司之整合;分公司数据 = 各部门之整合 } ,于是

1)从底层各部门开始统计数据,得到各部门的统计数据;

2)再逐层归整,得到各分公司的统计数据;

3)最后进一步整合形成总公司的统计信息。

 

根据以上思路,功能实现问题不大。

 

【问题描述】

 但随着客户数据的增加,发现统计性能急剧下降!!严重影响了用户体验!!!根源如下:

1)统计是从下到上的,统计的粒度小,若只是查看各部门的统计数据,效率还不错。若看总公司的统计数据就悲催了。

2)由于不同角色查看的统计数据不同,当并发量大时,最底层的统计功能会被频繁调用,导致服务器响应慢。

 

【解决方案】

和同事讨论交流后,在保留现有统计架构的基础上,发现有一种数据库技术可以提高统计性能,即物化视图!

1)通过物化视图,可以事先将各部门的统计数据保存在物化表,需要归整时直接从物化视图中直接获取结果。

2)为了保证用户体验,在客户对统计的实时性要求不高的情况下,可以结合物化视图的定时功能,进行定时更新结果。

 

Bingo!问题解决了!若大家有好的设计策略或思路,欢迎留言,谢谢!

 

下面附上物化视图简介链接。

 

【物化视图】DB2 基础: 物化查询表简介

http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0509melnyk/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值