需求:查询商品(SKU)第一天到第七天的销售,第一天到第十四天的销售,……
求解思路:1)查找SKU最早销售日期
2)查找第一天到第七天、第一天到第十四天销售数据
3)将这些数据的数量求和
在数据量达到数百万时,普通方法可能会直接拖垮服务器。为提高查询效率,公司DBA、架构师分别提供了两种解决方案(PS:本公司数据库受限制,不能使用存储过程)。
第一种方案:1)求最小销售日期 2)(当前日期-最小销售日期)/7 获取第N周数据 3)求和
第二种方案:1)使用内存临时视图with as 计算最早销售日期 2)最小销售日期+7 前七天销售等
第一种解决方案在73万数据量时,查询速度16s;第二种方案在同等环境下查询速度3s.(PS:我们的sql包含很多内容,因为是公司相关数据,再次不提供)
with as 是创建内存临时视图,在很多棘手情况下都可以使用,不单单使用于本方法。
查询自第一天到第七天的销售记录(累集N天),布布扣,bubuko.com
原文地址:http://www.cnblogs.com/moon-sun/p/3765013.html