大家给点建议,怎么会这么慢,不胜感激!
我做了一套流动人口管理系统,现在有30000多条数据(一个县的),人的少的时候,速度还非常的快,只要有7,8人(一段时间后),就特别的慢.提示的这样的错误:"Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding."请问这跟什么有关.我看了我服务器的"任务管理器"资源占用情况,cpu占用情况波动很在,会达到100%,但很快就下来,在10%以内,内存在440000这个范围,我内存是512M,cpu是p4 3.0G,请问这到底是什么原因,毒病原因可以排除,是不是跟iis的连接用户数有关,我的系统是window2000+sql server200+ie6.0,请大家帮忙出计. 问题点数:0、回复次数:23Top
1 楼netxie(埃文)回复于 2004-12-04 17:15:19 得分 0
我们公司也出现过这种情况,后来改用orcal就好了,sql server在大型数据库处理是比不过orcal的Top
2 楼jianggl20(andyme)回复于 2004-12-04 17:20:54 得分 0
netxie的意思是说跟数据库有关系?Top
3 楼thooy(雨天)回复于 2004-12-04 17:23:13 得分 0
一般都是跟数据库有关啦,客户端每一个连接请求都会向SQLSERVER发出一个连接,特别是查询时更慢,所以你每次连接数据库,取出数据后一定要把连接给关了,去查一下你的代码吧!Top
4 楼jianggl20(andyme)回复于 2004-12-04 17:35:55 得分 0
连接都关了,跟数据库访问的打操作我都在类里面,会不会有这方面的原因.比如我在一个页面里有3个这样的操作,都是跟数据库访问有关:getUserName(),getUser(),getUserAddress(),由于这三个方法我都已经封装里类里,所以就有3次跟数据连接操作,如果跟数据有关操作跟web页面一起,可以只用一个连接就可以.
我用的数据库访问组件是从petshop中拷贝过来,所有MVC都应该是这样吧!Top
5 楼netxie(埃文)回复于 2004-12-04 17:41:08 得分 0
去检查一下所有的SqlDataReader有没有没关闭的Top
6 楼jianggl20(andyme)回复于 2004-12-04 17:41:52 得分 0
现在内存已经达到55000多,已经一半了,其中sql server就占了50%,是什么原因引起sql server内存高居不下,有什么办法使sql server的内存降下来Top
7 楼jianggl20(andyme)回复于 2004-12-04 17:43:07 得分 0
SqlDataReader我是在ExcuteReader(ConnectBehavior.close)关闭的,我很少用reader,我用dataTable较多Top
8 楼netxie(埃文)回复于 2004-12-04 17:43:41 得分 0
Session是很占内存,是不是用和太多了Top
9 楼jianggl20(andyme)回复于 2004-12-04 17:45:08 得分 0
没有,我是用Cookie的保存值的Top
10 楼anjan(沙漠中的草)回复于 2004-12-04 17:47:04 得分 0
不要SQL了。Top
11 楼jianggl20(andyme)回复于 2004-12-04 17:47:07 得分 0
每次datatable用完了后,我都data.Row.Clear()了,应该是释放内存了Top
12 楼jianggl20(andyme)回复于 2004-12-04 17:48:08 得分 0
不要SQL是什么意思?请问 anjan的高见Top
13 楼chriswu(野风-小小草)回复于 2004-12-04 19:12:06 得分 0
UP
我也要学
Top
14 楼godblessyU(痛并快乐着!)回复于 2004-12-04 20:08:46 得分 0
你用ACT测试一下看看~Top
15 楼yanransoft()回复于 2004-12-04 20:10:43 得分 0
内存占用很大,到底是哪个进程占用如此之大的内存呢?
aspnet_wp.exe是asp.net的进程
inetinfo.exe是iis
sqlservr.exe是sql serverTop
16 楼conquersky(conquersky V)回复于 2004-12-04 20:42:29 得分 0
顶Top
17 楼carfer(菜鸟carfer)回复于 2004-12-04 20:55:27 得分 0
sql 2000的版本是不是企业办的?如果是home版的肯定不行了。
我个人认为不会是SQL Server本身的问题,更大规模的SQL Server解决方案有很多的Top
18 楼cooleader123(cooleader)回复于 2004-12-04 21:22:53 得分 0
引起速度慢的原因有很多,不是在这里可以说清楚的,但楼主说SQLserver占了50%的内存?那有可能是SQLserver有什么问题了,建议查一下数据库连接是否关闭,也可以建立一个连接池来管理数据库连接Top
19 楼MyBadBoy(BadBoy)回复于 2004-12-04 21:35:48 得分 0
看看代码,有没有需要优化的Top
20 楼esterlee(Hitman)回复于 2004-12-04 23:27:02 得分 0
操作系统问题
你的2000是professional 还是server的Top
21 楼Stanley928(逸风)回复于 2004-12-04 23:53:28 得分 0
联接数据库的方法有多种,最好用DATASET,这样也许会有效。ORCAL联接数据库确实比SQL要好,有时间可以参考参考!Top
22 楼liuwei662656(天堂)回复于 2004-12-05 01:33:46 得分 0
代码进行优化要好得多.Top
23 楼xuandme000(水丝游云)回复于 2004-12-05 09:08:48 得分 0
同时10多个人操作,mssql肯定可以应付的,我们公司现在有40多个人同时操作也很快
出现Timeout expired,一般都是连接没有关闭,要么就是你设置的Max_Pool_Size太小了.
"每次datatable用完了后,我都data.Row.Clear()了,应该是释放内存了"和连接没有关系吧
关闭连接才是有效的!Top




