当前位置: 代码迷 >> Sql Server >> 用SQL SERVER2008每天插入100W数据查询100W次,请问各路大神应该怎么设计表
  详细解决方案

用SQL SERVER2008每天插入100W数据查询100W次,请问各路大神应该怎么设计表

热度:20   发布时间:2016-04-24 09:20:53.0
用SQL SERVER2008每天插入100W数据查询100W次,请教各路大神应该如何设计表?
服务器配置:
1块普通7600转的硬盘
WINDOWS SERVER 2003,
SQL SERVER 2008

我自己想的数据库设计,为了查询效率高,基本不影响生产,数据库响应速度快:
方案1:
使用分区表,使用作业一天一分区,我从没用分区表

方案2:
使用普通表,建一个批次索引表存储此批次数据存储在哪得个表里获表名,然后去那个表里查询此批次的数据,每10个批次就重新建一个表,当新建的表存储满10个批次数据,又新建一个表,如此循环。

因为是生产环境,要做一个质量系统环环扣,上工位结论不合格下一个工位无法制作,每天插入100W条生产工位结论数据,
但是下一个工位又会去查询上一个工位的结论,理论上也就是也要查询100W次,此项目很重要的一环就是设计好数据库,项目还未开始,先上CSDN上请教各路做过大数据系统的大神如何设计数据库,我的方案是否可行?
------解决思路----------------------
建议分为生产表和历史表, 
生产表只存当前生产中和最近几天的数据,生产完毕后定时转入历史表后删除.

这样设计使生产表的数据不会太大,不影响产线的插入和查询性能.
------解决思路----------------------
同意2楼的说法,既然是生产过程的管控,那么只会对在产品进行管控,而已完工的产品的数据,应移到历吏表中(此时用分区表)
------解决思路----------------------
你可以了解一下一般的生产系统是如何设计表的,同时,希望你详细叙述一下用户需求
------解决思路----------------------
引用:
服务器配置:
1块普通7600转的硬盘
WINDOWS SERVER 2003,
SQL SERVER 2008

我自己想的数据库设计,为了查询效率高,基本不影响生产,数据库响应速度快:
方案1:
使用分区表,使用作业一天一分区,我从没用分区表

方案2:
使用普通表,建一个批次索引表存储此批次数据存储在哪得个表里获表名,然后去那个表里查询此批次的数据,每10个批次就重新建一个表,当新建的表存储满10个批次数据,又新建一个表,如此循环。

因为是生产环境,要做一个质量系统环环扣,上工位结论不合格下一个工位无法制作,每天插入100W条生产工位结论数据,
但是下一个工位又会去查询上一个工位的结论,理论上也就是也要查询100W次,此项目很重要的一环就是设计好数据库,项目还未开始,先上CSDN上请教各路做过大数据系统的大神如何设计数据库,我的方案是否可行?



主要矛盾实在读的话 ,先进行读写分离吧。 
其他的插入也好,还是后期的 查询 100W次 的效率也好,都需要进行实际环境的测试,才好分析进行什么样的处理。

另外 ,插入的环节,lz最好进行前期的测试,100W次,如果仅仅是插入,其实压力不是很大。 关键点还是解决读的问题。横向分表,还是纵向分表,也还是需要结合具体的需求。光是纯理论的分离,未必在实际中可以有理想的效果。 

针对硬件,如果可以的话,lz对硬盘这块进行一些适当的提升也会有帮助。 
CPU和内存这块,lz也需要考虑结合操作系统进行一些改善,64位、多核啥的。

参考 

  相关解决方案