在一个真实的项目中有这样一个问题,问题描述如下:
有一张订单表,里面的数据量非常庞大,而我们也没有对该表经行其他处理,有新的数据入库都会插入到该表中,随着时间的推移,这张表的数据还将不断地增加,且日增数据很大,我们现在要处理的问题是,从该订单表中统计出销售报表数据。其实这个需求并不复杂,我们要解决的问题是,大数据量的性能问题。
关于这个问题,开发出的第一个版本是直接通过SQL查询来处理的,结果发现并不复杂的SQL报表统计查询语句,其响应的时间较长,结果后来项目组决定采用每天晚上用job跑出数据,将跑出来的数据插入到另一个统计表中,然后报表数据从该统计表中查询。这个方案解决了查询响应时间较长的问题,但是用户却不能看到实时的销售报表情况,只能查看昨天及昨天之前的销售报表数据,后来项目组决定又做了一个今日销售报表的功能,于是提供了今日销售报表和历史销售报表,至此解决了这个问题。
我后来回想这个问题,感觉还是很繁琐,一方面我需要创建一个Job,一方面我要新建一张统计表,一方面我要新增一个今日销售报表的功能来满足用户去查看今日销售情况,而且今日销售报表还是从订单表中查询,性能也会有问题。
于是我的想法是:针对报表统计的SQL创建一个物化视图,让它来帮助我们预先计算并保存报表统计的结果,也就是说,我们把销售报表统计工作交给物化视图来处理,我们只需从该物化视图中查询结果即可,这样我们要处理的问题就得到了大大的简化。
通过物化视图,我只需定义刷新的模式,它帮助我们实时生成物理的报表数据,我们从物化视图中查询结果显示给用户,这样我们完全可以得到实时的销售报表统计数据,这种解决方案虽然牺牲了空间,但换来了时间,
大家觉得这种解决方案怎么样呢?
一个Java技术交流群,一起交流,共同进步,扣扣群号:513086638
相关推荐
orace表分区及物化视图 进一步了解oracle表分区技术及物化视图技术应用
物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建
Oracle物化视图应用详,有实例和各属性介绍
物化视图 (MV)在一个段中存储查询结果,并且能够在提交查询时将结果返回给用户,从而不再需要重新执行查询 — 在查询要执行几次时,这是一个很大的好处。物化视图可以利用一个快速刷新机制从基础表中全部或增量刷新...
真正值得一看的mysql知识。MySQL中实现物化视图(中文版)翻译于外文。
Oracle物化视图创建和使用,设置物化视图的自动刷新时间
Oracle中物化视图很重要,物化视图优秀论文. 在数据仓库中物化视图是非常重要的。Oracle中物化视图很重要,物化视图优秀论文. 在数据仓库中物化视图是非常重要的。Oracle中物化视图很重要,物化视图优秀论文. 在数据...
ORACLE9I物化视图
ORACLE使用物化视图和查询重写功能
物化视图的快速刷新
物化视图的两种实现,直接在物化视图中设置设计和通过定时任务触发存储过程来更新物化视图
oralce创建物化视图,基本语法,基本操作
物化视图普通视图区别.doc,很不错的资料
Oracle怎么根据物化视图日志快速刷新物化视图
Oracle物化视图使用[文].pdf
物化视图创建
物化视图学习笔记 错误问题分析总结 详细讲解了物化视图的内部构造,从零基础开始学习 重点说明ORA-12034的错误解决方案
里面详细讲述物化视图的种种创建,物化日志的结构,group by 语句创建物化视图的处理
通过逻辑备份和oracle物化视图技术,实现oracle数据库个别表的实时刷新,达到数据实时复制
数据仓库,数据挖掘,物化视图 数据仓库,数据挖掘,物化视图 数据仓库,数据挖掘,物化视图