首页 新闻 会员 周边

asp.net页面关闭释放资源的困惑

0
悬赏园豆:50 [待解决问题]

一个查询页面,查询速度缓慢,当这个页面查询时整个站点iis或数据库都会受到影响,不考虑单建程序池,程序池回收什么的情况,如何:

当页面正在查询时,后台的存储过程或者页后台程序正在运行,如果及时回收呢,特别是存储过程,如何在页面关闭时就杀掉 当前页面发起的这个查询呢

protected void btnQuery_Click(object sender, Infragistics.WebUI.WebDataInput.ButtonEventArgs e

{

   //如果用户在线

   if (this.Response.IsClientConnected)

   {

     //do something ...

  }

  //用户离线

  else

  {

        KISSpid();//杀死查询的进程 ?????如何实现

        Response.End();  //页面终止

   } 

}

http://www.cnblogs.com/xlx0210/archive/2009/12/23/1630731.html

http://www.cnblogs.com/wifi/articles/2438551.html

问题补充:

查询的存储过程从十余张表中拉去数据,有的表百万的数据,放入临时表,运算等等,故速度很慢……

tommyhu的主页 tommyhu | 初学一级 | 园豆:117
提问于:2013-03-19 14:28
< >
分享
所有回答(4)
0

这个不好控制吧, 还是找其它原因吧,比如查询问题,存储过程问题,还是  机器的配置 太差了 ...

Qlin | 园豆:2403 (老鸟四级) | 2013-03-19 14:33
0

不明白一个查询怎能让页面死去,觉得应该查查数据库设计问题

Yu | 园豆:12980 (专家六级) | 2013-03-19 14:49
0

楼主的意思应该是关掉页面后,这个页面所发起的查询强制结束吧.

需要这个设计:

1用户每分钟往服务器提交一次,更新在线状态

2服务器每分钟检查未即使更新在线状态的session

3关闭所有未在线状态发起的所有请求

飞来飞去 | 园豆:2057 (老鸟四级) | 2013-03-19 15:10
0

楼主搞笑的把,你关了浏览器Request也已经发出去了和已经开始执行的存储过程有什么关系?

除非你再发一个Request显示告诉后台终止执行。

最简单就设置数据库连接超时时间。超时抛出timeout异常,over.

想解决根本还是要优化存储过程,建议将SQL贴出来看看。

luofer | 园豆:468 (菜鸟二级) | 2013-03-19 18:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册