如图所示:站名、站码、日期。。。。。十几条记录,数据行数在百万条。如何做到 2 秒
搞定!
做优化之前,查询代码总是出现超时现象,甚至是一直超时导致不能运行,解决方案:
首 先 分 析 引 起 Timeout 的 原 因 , 一 般 是 Connecon 没 关 闭 或 者
SqlConnecon.ConneconTimeout 超时,另外一种就是 SqlCommand.CommandTimeout 引起
的, SqlCommand 的此方法为获取或设置在终止执行命令的尝试并生成错误之前的等待时
间,他的默认为 30 秒,你可以设置为 0 ,它表示无限制,但是最好不要去设置 0 ,否则会
无限的等待下去的,只需要针对查询分析器的时间,去设置这个时间就可以了。执行时间
不是很长,但是还是操作超时,那么也有很多原因,一般经常出现的有两种, asp.Net 应用
程序的请求超时,或者是连接池的连接生存期过去, ,因为连接池默认值是 60 秒,那么针
对这两种解决方案为:
解决应用程序请求超时:
在 web.cong 中加上以下语句:
<system.web>
<h#pRunme maxRequestLength="102400" execuonTimeout="720" />
</system.web>
execuonTimeout:是允许执行请求的最大时间限制,单位为秒
maxRequestLength:指示 ASP.Net 支持的最大文件上载大小。
解决程序池生存周期问题:
在数据库连接字符串中修改:database=DBName;uid=sa;pwd=123456; Pooling=true;
MAX Pool Size=1024;Min Pool Size=1;Connecon Lifeme=60。我们在开发的过程中都本着对
客户负责的态度,不论项目的大小在网站发布上线之后不应该出现大的错误问题。
--------------------------------摘自《长沙网站建设公司解决.net 百万数据查询超时问题》
这些方法可以保证代码不再报错,但是查询速度从本质上来说没有一点优化!不该不能运
行,改了能运行,但是不出结果,和没改差不多,但是上文给了我们很多启发,也在其他
方面给了很多启发,比如超时问题 maxRequestLength 完全可以解决文件上传超时问题!
下面进入主题,解决大数据查询速度优化,其实很简单,两秒可以结束查询!
我们写 C#代码,执行 sql 是很慢的,尤其是一条一条的执行的时候更慢,因为经过我测试
所知:数据库执行 open()的时候特别慢,做大数据查询的时候你才会发现。而一条一条的
插入,每次都 open 一次,百万条你得导到什么时候。。。
优化策略简单介绍如下,做到之后绝对让你体验神速!
1、 数据集尽量用 SqlDataReader reader 相当于索引,速度绝对神速。
2、 代码中执行的 sql 语句用存储过程来实现。
其实解决之道就是以上两条最最主要,两条经验得来不易,于是坐下记载与大家分享。