当前位置:编程学习 > C#/ASP.NET >>

ado.net查询效率如此低下??

我在同一台机器连接远程的机器上的SQLServer2005执行一个比较复杂的查询,在查询分析器中执行时间大约在20秒左右,可以如果使用.net程序的datase进行填充执行,竟然要执行10多分钟造成执行超时,我仔细检查过查询分析器的连接属性与.net程序的连接属性完全是一样的,难道是因为ado.net的bug还是其它原因造成如此低的效率? --------------------编程问答-------------------- 在SQL Server2005上查要多少时间呢? --------------------编程问答-------------------- ........up --------------------编程问答-------------------- 是不是单指查询而言?还是包括页面生成?
在asp.net里要返回html页面,就你那20分钟的查询大概生成的网页有好几十M大小了,不当机才怪. --------------------编程问答-------------------- DataSet包含了架构,但也不会要这么长的时间啊... --------------------编程问答-------------------- 20秒与10多分钟?

-_-! --------------------编程问答-------------------- 什么叫填充执行啊?你用sql服务器操作的话,整个过程是在数据库服务器完成的,你在dataset里访问的话实在web服务器里跑,还是你自己机器上跑? --------------------编程问答-------------------- 只是查询时间就相差这么多,绝对不包括其它时间 --------------------编程问答-------------------- 没遇过类似问题,差别有这么大? --------------------编程问答-------------------- 慢是肯定的,数据集添加到dataset中,需要反射,装箱等的操作,肯定慢,但是不可能慢的那么多,还是由于你的程序的问题,用datareader试试 --------------------编程问答-------------------- 数据量大就建索引吧,或者View --------------------编程问答-------------------- SQLServer2005执行一个比较复杂的查询,在查询分析器中执行时间大约在20秒左右,

晕,问题是你先优化下吧。
20多秒也能拿出来用。

优化好了,就没问题了!! --------------------编程问答-------------------- 你不考虑下是不是网络问题?没道理填充DATASET要怎么久。。。除非你的缓存小的离谱。。 --------------------编程问答-------------------- 是不是你那自身的程序有问题啊,一个数据库表里的数据有过万也不要那么久啊
看一下是不是访问被阻止了,或者是网络出问题了
再看一下程序是不是有问题,或者优化一下你的SQL语句 --------------------编程问答-------------------- 数据量有多大?
--------------------编程问答-------------------- 网络方面的可能行是有的  --------------------编程问答-------------------- 请问 你的 数据打开连接以后 是否没有 sqlcon.close();  ??? --------------------编程问答-------------------- 必须一次拿出来?试试分页拿,同时,请优化存储过程,还有,测试你与远程服务器的PING速。 --------------------编程问答-------------------- 可以试试分页获取,能提高很多

我这里有个例子

http://blog.csdn.net/lemong/archive/2008/08/07/2782914.aspx

查询也最好优化一下,20多秒还是比较慢的,最好控制在10秒内 --------------------编程问答--------------------
引用 5 楼 lovehongyun 的回复:
20秒与10多分钟? 

-_-!
--------------------编程问答-------------------- 不会差别这么大,你把sql做成存储过程优化一下然后用数据分页,会好很多的. --------------------编程问答-------------------- 有吗 那人家那大型网站难道就不用ADO.NET了? --------------------编程问答-------------------- 在程序中查的时候你换成存储过程`  你连接远程机器肯定会慢的~这就不能仅从ado.net考虑了`网速 有没有别的磁场干扰 机器的性能都可以影响到速度~~     --------------------编程问答-------------------- 检查网络链接其一

其二,ado.net 执行完数据后,需单独填充 dataset 并进行数据检查,而 sql server 2005 直接查询数据显示,就ok

不过不管怎么说。两者查询不会这么大,最多 20s -- 30s
--------------------编程问答-------------------- 星星LZ的问题说清楚哇。。。
就算20分钟,ado.net效率就一定很低么???时间究竟消耗哪了要找到
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,