如何提高查询数据的速度?

学徒0905 2010-09-15 01:23:21
我要实现一个功能,,例如8月1号-8月20号,这一段时间内有很多个下雨过程,以最大的下雨过程为对象,我要实现这段时间在历史上最大的下雨过程,有十几年的数据,每年都有8月1号-8月20号,这只是一个观测站的结果,我还要实现几十个观测站在8月1号-8月20号历史上最大的下雨过程。我如何实现提高速度,我用DataTable 显示的,可是速度很慢,因为有几十万行的数据,这个功能是在这几十万行数据中查询的。

请高手给些思路???
...全文
196 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
wj0728 2010-09-15
  • 打赏
  • 举报
回复
索引
视图
分区表
IceSpeed 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 levitate 的回复:]

dataTable采用存储过程分页结构

建立良好的索引

最好别用循环语句 对于大数据量用临时表单都比循环快很多
[/Quote]
说的有道理!
学徒0905 2010-09-15
  • 打赏
  • 举报
回复
综合性的问题,主要是逻辑和sql的。
njw1028 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zhouzhangkui 的回复:]
楼主发错地方了吧
这个属于SQL方面的问题了
[/Quote]
答曰:对
学徒0905 2010-09-15
  • 打赏
  • 举报
回复
下雨过程是这样的,比如给一个时间段,8月1号-8月20号, 3号下雨了是一个过程,4-7号每天都下雨了是一个下雨过程,9号下雨了是一个过程,11-15号每天都下雨了是一个下雨过程,求这几个过程中降雨量最大的过程,这是针对一个观测站的。我还要实现几十个观测站在8月1号-8月20号历史上十几年最大的下雨过程。我如何实现提高速度。
qq100191677 2010-09-15
  • 打赏
  • 举报
回复
存储过程
索引读
集合装
学徒0905 2010-09-15
  • 打赏
  • 举报
回复
我的意思是从几十万行数据中找到符合条件的数据,然后再经过处理,最后显示在DataTable上的,没有多少行数据,最多一百行左右。就是处理数据时,我也用了临时表,要得到的结果比较复杂,经过很多的循环和判断,差不多要等50秒左右
smallMage 2010-09-15
  • 打赏
  • 举报
回复
看你需求,如果是一次性把几十万需求都导出来,那肯定优化数据库,
如果只是展现出来,那你采用分页,一次只返回20条数据,或者一页显示100条数据,速度很快
levitate 2010-09-15
  • 打赏
  • 举报
回复
dataTable采用存储过程分页结构

建立良好的索引

最好别用循环语句 对于大数据量用临时表单都比循环快很多
yuxh81 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yue913785770 的回复:]

我的意思是这个功能要实现很麻烦,我用的是循环,一个大循环包括10来个循环,结果显示的语句也不多,就是循环处理数据花费的时间长
[/Quote]

我估计你的sql语句或逻辑有问题
飞扬人生 2010-09-15
  • 打赏
  • 举报
回复
先建立索引
然后存储过程调用数据
写入到多个datatable中,合并之。
Nick黄 2010-09-15
  • 打赏
  • 举报
回复
实现下雨过程、费解....
学徒0905 2010-09-15
  • 打赏
  • 举报
回复
我的意思是这个功能要实现很麻烦,我用的是循环,一个大循环包括10来个循环,结果显示的语句也不多,就是循环处理数据花费的时间长
周药师 2010-09-15
  • 打赏
  • 举报
回复
楼主发错地方了吧
这个属于SQL方面的问题了
dgsunzhua123 2010-09-15
  • 打赏
  • 举报
回复
建索引
把查询语句优化一下
其中的算法还是要你自己解决
升云 2010-09-15
  • 打赏
  • 举报
回复
需要优化2点
1. 你是使用dataTable进行数据查询的吗?
DataTable是很占用内存的,建议使用存储过程查出结果数据,之后使用DataTable进行显示,如果显示数据量大的话,采用存储过程分页结构,dataTable不要存储大于1000条的数据.
2.建立索引
10多万的数据如果不是很复杂的数据的话,建立良好的索引和查询语句是一般在0.5秒内就会有结果的
yoyo_ 2010-09-15
  • 打赏
  • 举报
回复
建立索引
用存储过程,查询速度快~~
wjhx 2010-09-15
  • 打赏
  • 举报
回复
1、建立合适的索引;
2、将数据进行预处理;
3、后端用合适的算法进行处理;
4、返回客户端较少的数据。
changjiangzhibin 2010-09-15
  • 打赏
  • 举报
回复
1 建立索引
2 优化查询语句
3 建立临时表
...
加载更多回复(2)

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧