二百多万数据查询优化问题 有个二百多万的数据表,十多个字段,经常会通过条件和分组查询,也可能经常十多个字段分组查询,数据库是SQL Server 2005,现在十多个字段同时分组时就要1分多钟,麻烦大家帮帮忙 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是有个二百多万的销售数据表,需要通过web形式提供给分析人员,他们可以通过字段条件和字段分组灵活的统计分析销量,现在十多个字段同时分组统计销量时特别的慢大概要1分多钟,四五个字段分组加条件也都不是很快 建立好索引优化sql语句其实200W数据真的不大 这个非常可取。200w并不是多大的数据量。建立好索引优化sql语句这两个很重要。 建立索引,分页查询数据SQL语句 十多个字段做分组统计,这就要看你对数据实时性的要求了如果你要求任意时间都是精确统计,那没别的办法,只能这么做如果不是要求实时的,那可以建一个统计结果表,然后建一个JOB定期把统计结果写进去查询的时候直接查统计结果表就好了。至于这个JOB多少时间跑一次,就看你的需求了,可以是一天,也可以两个小时。 如果是需要灵活,那么就要牺牲性能如果是要提高性能,那就要牺牲点灵活性:比如固定某些字段进行统计,把统计结果放到另外的表,不接受实时统计等等。这个是一对矛盾。当然,对于200W数据,要都解决也有办法配上32G内存,4颗物理CPU(每个四核),闪存硬盘的服务器,你也可以同事解决灵活性和性能的问题 用sql server analysis services 我也发现了,查询时,cpu和内存利用率都不是很高,硬盘特别高 客户关心的没有几个还有,你别用模糊查询 like '%%'那样索引无效 信关二哥。。没错的。。还有耿三弟有一些意见:1.分页。。select top pagesize2.缓存呢?3.建一个表专门用作索引字段的。。 补充:查出来的结果(不排序、不分组)放临时表里,对临时表进行分组等操作。另外,进来别join尤其是outer join。为了减少join,设计时可以考虑必要的冗余。 DataView 中的数据如何导出到EXCEL Javascript打印设置页眉页脚失败! Login 控件 的原理(C#) ?? DataSet读取XML为什么有的数据读取不出来?100分求助,解决立马结贴 异常详细信息: System.ComponentModel.Win32Exception: 拒绝访问。 怎样在IIS里创建一个虚拟目录,用.NET代码写。 asp.net如何提取服务器端时间,不停的显示在浏览器上? 求教页面之间参数的传递 谁透露一下外包公司猛招人的内幕? 顺便问个问题 高分求助ActiveReport部署例子。 input FindControl郁闷了 问个基础的问题
优化sql语句
其实200W数据真的不大
建立好索引
优化sql语句
这两个很重要。
SQL语句
十多个字段做分组统计,这就要看你对数据实时性的要求了如果你要求任意时间都是精确统计,那没别的办法,只能这么做如果不是要求实时的,那可以建一个统计结果表,然后建一个JOB定期把统计结果写进去
查询的时候直接查统计结果表就好了。
至于这个JOB多少时间跑一次,就看你的需求了,可以是一天,也可以两个小时。
如果是需要灵活,那么就要牺牲性能
如果是要提高性能,那就要牺牲点灵活性:比如固定某些字段进行统计,把统计结果放到另外的表,不接受实时统计等等。这个是一对矛盾。当然,对于200W数据,要都解决也有办法
配上32G内存,4颗物理CPU(每个四核),闪存硬盘的服务器,你也可以同事解决灵活性和性能的问题
还有,你别用模糊查询 like '%%'
那样索引无效
1.分页。。select top pagesize
2.缓存呢?
3.建一个表专门用作索引字段的。。
另外,进来别join尤其是outer join。为了减少join,设计时可以考虑必要的冗余。