[已解决问题] asp.net执行大的数据操作,超时问题
提问时间: 2007-12-09 10:16
悬赏分:20 浏览:1172 次

asp.net执行大的数据操作,比较耗时,经常出现超时time out,操作中断,无返回结果...

大家一般怎么处理这种问题?
PS:web.config中设置最大执行时间感觉没什么效果。


提问者:chy710 - 初学一级
最佳答案
设计问题,你要找到为什么会页面会执行这么久,如果确实需要执行很久的话,可以把调用做成异步的,然后客户端再发送轮询判断调用执行结果是否成功以及来取执行结果。
2007/12/9 11:03:52 回答者:蛙蛙池塘
其它回答(8)
web.config中的time out是用来设定客户端访问web server的,如果你的超时是app server访问database超时的话,应该在sql 中设置超时时间。

不过关键问题是你做什么操作会如此耗时?  找到问题所在,看有没有性能优化的余地,如没有就改进处理方式,比如异步、操作部分数据等。
7个月前   回答者:Zealot - 菜鸟二级
恩,蛙蛙池塘说得有道理
先看有没有必要做这么大的数据操作,再看哪一步骤需要提升性能
程序-》数据库(冗余,索引,物化视图)-》数据库,中间件参数
7个月前   回答者:Eric Luo - 菜鸟二级
1 程序算法上耗时:如死循环之类的
2 数据库查询上的耗时:可通过在条件或者排序列加上主键、索引、组合索引等。
程序上的耗时检查,可断开数据库操作,然后再执行,看看是否还是耗时,如果不是,则重点检查数据库耗时,具体的可用SQL自带的事件跟踪来检查耗时的SQL句,然后针对相关SQL句子优化~。。。
7个月前   回答者:没剑 - 菜鸟二级
楼主的状况我见过,建议写一个控制台程序来处理数据,而不是用ASP.NET页面来做

如果非要这样的话,超时的时间可以在IIS的设置里面改

还有一种常见的办法,就是一次只处理10%的数据,然后显示一个submit按钮,按下后可以再处理10%的数据
7个月前   回答者:狂人 - 菜鸟二级
IIS控制台中有ASP.NET超时的设置,在一个很隐蔽的角落里。好象是:
站点属性->主目录->配置->ASP.net 超时设置

没做过,胡乱猜。我记得Windows安装中有一个可选组件,好像叫MataEditor的可以用来修改很多IIS控制台GUI中没有的配置。
7个月前   回答者:Colin Han - 老鸟四级
IIS的程序池里面可以配置程序的超时时间,不过最好还是分段执行比较好.
7个月前   回答者:沙加 - 老鸟四级
页面执行的时间如果太长,那就是设计的问题,不像win,你说的数据操作,那就是数据库操作了,那应该是数据库设计的问题了,看看存储过程是不是有问题,通俗的说,页面的程序操作就是一个发数据和等待数据的操作,如果超时,那你再怎么设置时间也解决不了问题,因为还是慢啊.
PS:
上传文件除外,上传文件有上传文件的解决办法 :)
7个月前   回答者:尧尧 - 菜鸟二级
我也遇到同样的问题,请高手指点
比方后台循环发送邮件,每次发几百万个用户各自不同的内容都要用到数据库
6个月前   回答者:ytzong - 菜鸟二级
评论
7个月前   chy710 :
谢谢
数据库优化,程序优化这方面是没问题的,情况比较特殊,用户点击按钮执行一个存储过程,几十行SQL吧,主要是数据量较大,二三十万吧。

PS:楼上各们提到的异步指的是如ajax异步吗,这种我试了,是后台操作超时了,操作中数断,页面虽然没刷新可以做一些效果,但已经获取不到操作的结果了。(执行操作后要有个结果显示给用户)
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除