救命! 海量数据多表查询? 提速

Sql2008 R2 

(1)有4个视图,每一个视图,来自6张表, 这个视图有2800万行数据,查询非常慢可能要10个小时,甚至没结果,电脑挂掉,想提速,给点建议吧,有时候,where条件复杂了程序执行几十分钟后挂掉,查不出结果的.

(2)每张表之间没有主外建关系,或者没有主键,【但有索引】,因为数据是从HIS系统采集过来的.所有数据只需要查询,不需要修改和删除.

(3)大部分表有70-80列, 单个表 最多 600万行记录.

(4)用户需要提交非常复杂的 where 条件 以对数据统计. 

例如 年月日,姓名,数量,次数,科次等20个以上的条件.

(5)

过程大概分2步, 
1: 按用户提交的where 条件筛选数据,形成一张非常大的 临时表或称做table的.
2:在第1步筛选的基础上进行count,sum等40个或以上的统计,再返回结果,可能还有其它嵌套统计或判断
每次提交的where 条件是动态的


慕斯709654
浏览 774回答 2
2回答

largeQ

这样的数据量应该不算海量,合理的视图索引应该可以解决,必要的时候用空间换时间也是可以的

炎炎设计

数据量过大时,需要考虑数据库结构设计。不能采用单一表设计,也不能唯一依靠索引。可以试一下千万数据一个表的查询速度。主键、索引、普通列的分别速度。
打开App,查看更多内容
随时随地看视频慕课网APP