悬赏分:20 浏览:1172 次
asp.net执行大的数据操作,比较耗时,经常出现超时time out,操作中断,无返回结果...
大家一般怎么处理这种问题?
PS:web.config中设置最大执行时间感觉没什么效果。
|
web.config中的time out是用来设定客户端访问web server的,如果你的超时是app server访问database超时的话,应该在sql 中设置超时时间。
不过关键问题是你做什么操作会如此耗时? 找到问题所在,看有没有性能优化的余地,如没有就改进处理方式,比如异步、操作部分数据等。 恩,蛙蛙池塘说得有道理 先看有没有必要做这么大的数据操作,再看哪一步骤需要提升性能 程序-》数据库(冗余,索引,物化视图)-》数据库,中间件参数 1 程序算法上耗时:如死循环之类的 2 数据库查询上的耗时:可通过在条件或者排序列加上主键、索引、组合索引等。 程序上的耗时检查,可断开数据库操作,然后再执行,看看是否还是耗时,如果不是,则重点检查数据库耗时,具体的可用SQL自带的事件跟踪来检查耗时的SQL句,然后针对相关SQL句子优化~。。。 楼主的状况我见过,建议写一个控制台程序来处理数据,而不是用ASP.NET页面来做 如果非要这样的话,超时的时间可以在IIS的设置里面改 还有一种常见的办法,就是一次只处理10%的数据,然后显示一个submit按钮,按下后可以再处理10%的数据 IIS控制台中有ASP.NET超时的设置,在一个很隐蔽的角落里。好象是: 站点属性->主目录->配置->ASP.net 超时设置 没做过,胡乱猜。我记得Windows安装中有一个可选组件,好像叫MataEditor的可以用来修改很多IIS控制台GUI中没有的配置。 IIS的程序池里面可以配置程序的超时时间,不过最好还是分段执行比较好. 页面执行的时间如果太长,那就是设计的问题,不像win,你说的数据操作,那就是数据库操作了,那应该是数据库设计的问题了,看看存储过程是不是有问题,通俗的说,页面的程序操作就是一个发数据和等待数据的操作,如果超时,那你再怎么设置时间也解决不了问题,因为还是慢啊. PS: 上传文件除外,上传文件有上传文件的解决办法 :) 我也遇到同样的问题,请高手指点 比方后台循环发送邮件,每次发几百万个用户各自不同的内容都要用到数据库 |
|
7个月前 chy710 : 谢谢 数据库优化,程序优化这方面是没问题的,情况比较特殊,用户点击按钮执行一个存储过程,几十行SQL吧,主要是数据量较大,二三十万吧。 PS:楼上各们提到的异步指的是如ajax异步吗,这种我试了,是后台操作超时了,操作中数断,页面虽然没刷新可以做一些效果,但已经获取不到操作的结果了。(执行操作后要有个结果显示给用户) |