SQL Server大数据量统计系统的经验总结

  • 作者:体会.net 来源:开发者在线 文章点击数:

    项目介绍
    政府一个业务系统,
    使用范围全国 
    数据是区域还存储,最大地方,主业务表,一年有600万,工作流表,1年有几千万,迄今为至系统已经运行三年。
    其它全国还有46个地点,数据也比较多
   新开发系统主要功能,对业务系统的数据进行分析统计.

   所以对性能要求比较高。

   我们的简要方案。

    建立中间表,通过DTS调度每天共步数据。
   中间表设计原则

    记录数同原表一样,减少多表连接,保存运算好的值,如果记录修改,根据修改日志,重新计算中间值


    增量同步数据(DTS) 
    直接从每天的数据库更改日志读取记录,更新中间表,根据服务器空间程度合理调度DTS,减少数据同步时间。

    对中间数据进行运算 
    查询不作字段运行,所以运算在生成中间表的过程中已经计算

    根据查询,优化索引设计
    根据数据查询特性,对where ,GROUP BY等操作字段进行索引设计,提高查询速度 

    优化数据类型 
    大量采用Int提高查询、统计速度 

    优化中间表关键字
    采用Int,提高插入速度

    数据文件优化设计,一个主要业务,一个数据文件,建数据文件时,估计数据量,一次建一个比较大的文件,这样所分配的文件就是一个连续文件块,sql server设置区别大小写。初始内存调到一个比较大的内存。

    使用我们的Toolkit开发简单分页,相关压力测试, 测试服务器配制2个至强3.0CPU/ 2G内存/150G硬盘/Window 2000 Advance Server中文版+SP4/ 测试数据ENTRY_WORKFLOW表,数据量2,473,437

页数  界面显示时间  CPU  Reads I/O  Writes I/O  Duration 
第1页  2-3 S  642  10689  0 390 
第100页  3-4S  626  128001  0 423 
 ....后页业数太多,没有必要

 压力测试

 并发数 平均每秒请求数 未字节响应毫秒数
 50 45.28 20,095.65
 25 45.41 10,043.12

索引优化测试, 

 对分量值小的数据建索引测试,测试语句,GROUP BY 分量值
  一个字段,大概有6个分量值,没有建索引,4S,建索引<1s
 两个分量,不建索引,3S,建索引,<1S
一般来说,对分量小的字段,不建索引,但是我们对性能要求太高,根据我们的测试,数据对分量范围小的也要建索引。

因为一个统计,有一个很多组合的WHERE,比如有十个指标这样会有十次访问原表,这样性能太低,所以我们把where后的数据作

用中间数据,
十个指标对中间数据作查询,中间数据,我们使用临时表,
经测试,10万条记录,插入操作,临时表需要,16s,表变量需要,40S

select ... into #temp from .......
速度极快,2,500,000条记录,16S

下一页
本文共 2 页,第  [1]  [2]  页

Tags:SQL Server asp.net
  • 相关文章

Copyright 2006-2008 Powered by Noheart.NET无心人网络 All Rights Reserved.

QQ:89232083 E-Mail:leijian212@163.com

豫ICP备08004854号