haitao:
某个访问数据库的asp阻塞(需要执行多个很费时的sql)后,所有需要访问数据库的asp都被阻塞了,只有不用访问数据库的asp页面会立即返回
[阅读: 237] 2010-03-12 07:43:50
某个访问数据库的asp阻塞(需要执行多个很费时的sql)后,所有需要访问数据库的asp都被阻塞了,只有不用访问数据库的asp页面会立即返回
想在iis6的web园的设置了超过1的最大进程数,这样可以多个asp解释器同时运行
但是结果就是asp的session信息就会丢!
(asp的session信息跨进程就会丢了
搜到的只有asp.net的:不使用inproc而是采用session服务。这样可以多进程)
这样,岂不是无法使用web园的优势了——服务器的cpu核比较多,一个asp卡死所有的页面,也太可惜了。。。。。。。
而前几天偶尔发现有个asp页面很奇怪,它执行很慢(因为需要很多次的sql查询),而且会导致别的asp网页也等在那里了!
一般的asp页面都是可以并发执行的,虽然只有一个解释器进程
不知道为什么,这个页面的执行居然会阻塞别的涉及数据库的asp页面被其它线程并行执行
而不用访问数据库的asp页面仍然是被并行执行了
现在那个慢的asp的sql被修改了,但是这个问题很危险——居然会阻塞所有需要访问数据库的其它asp。。。。。。。。。
这个sql的问题也很奇怪:好像asp对sql有特别的预处理?
这个sql是select ... from vwX group by ...
而视图vwX写得有点问题:select top 1000000 ... from 表 关联 多个表... order by ...(1)
改为select ... from 表 关联 多个表... (2),asp的执行速度就正常了
但是sql(1)在查询分析器里执行却是正常的(1秒),而asp执行sql(1)就需要12秒!!