首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql2008 一个表有二千多万行数据,求数据优化解决思路

2013-12-11 
sql2008 一个表有二千多万行数据,求数据优化公司系统用的数据库是SQL2008,听说之前一个表的数据只有几百万

sql2008 一个表有二千多万行数据,求数据优化
公司系统用的数据库是SQL2008,听说之前一个表的数据只有几百万的时候查询速度是非常快的,但到了今年11
月的时候这个表的数据已经有了二千多万行了,查询速度变的非常慢。
当然这个表的索引肯定是有的,偶尔也会做做DBCC dBReIndex
可能是SQL当一个表的数据行达到了千万级别时,查询速度受影响非常大吧
 除了删除或转移部分表的数据外还有其它方法,还有其它方面优化来提高查询速度没?
 求建议!!!!!!!!
  
[解决办法]
可以按照日期字段,进行分区,比如一个月一个分区。

另外:听说之前一个表的数据只有几百万的时候查询速度是非常快的

能把你的查询语句,贴出来看看不,看这个语句的特征,从语句的级别能不能优化
[解决办法]
2000万不算大,如果你全表扫描,那当然越来越慢,具体看你的语句
[解决办法]
這個是要看你sql語句吧?
[解决办法]
我原来的公司,一个主要的业务表有超过1.5亿条记录,但是每次查询,做报表,基本上只会用到600-700w条数据,不会用整个表的所有数据。

所以建立了一个索引,速度非常快,而且还与其他的千万级别的大表进行关联,计算,基本上10秒内就能返回结果
[解决办法]

引用:
Quote: 引用:

分区的重点在数据可管理、可维护性上,非性能上,别被误导
性能问题只能实事求是,实际诊断和分析,才会有客观的改进方式和方法

呵呵,谢谢各们提出宝贵意见,我就一个新手应该多多学习。。。
可能原因是从表的索引经常乱吧。。。。刚才用了十几分钟对从表做了DbReIndex,
发现速度有明显提升。


那就可能是索引的碎片,或者是统计信息的不准确导致的。
[解决办法]
执行计划才能看出问题在哪里,我预估要么是进行了扫描,要么用了低效的JOIN算法,要么就是WHERE条件不够高效,如果你不贴执行计划,估计把问题会延长很久...很久...很久,然后就....没有然后了
[解决办法]
两个表进行关联的时候,建议先用条件分别作用于各个表,然后再将结果进行关联,这样速度比较快,个人觉得单张表2000W数据不算大,是一个合理的范围,如果超过千万级,到上亿级就需要考虑分区表,我们现在项目有个库里各张表的数据都是千万级的。
[解决办法]
2000万就要分区,
那让我们这些 5000万~上亿条的数据怎么办!
先不用分区,分析其他原因。


你说 用主表的时间字段做为条件,那查询出来的结果有多少条呢?
[解决办法]
2000W真不算多。还是着手查询优化吧。
[解决办法]
标志下                    .

热点排行