找出死锁幕后元凶,引起进程阻塞的sql命令:sp_execute;1

[ 2010-10-26 21:32:47 | 作者: admin ]
字号: | |
p.s. 阻塞的情况下,用sp_who 和sp_lock 就可以看出是哪些对象竞争比较严重,但是对于dreamweaver自动代码 sp_prepexec;1 却无效了

问题:
引起进程阻塞原sql命令:sp_execute;1
sp_prepexec;1
无法找到引起sql语句,或是插入如个表,或是查询哪个表,都不是很明确


解决办法:

你这是2000的还是2005的?
sp_execute 表明该语句通过ADO进行连接的。
先打开查询分析器,选择master数据库

在2005下面通过如下方法试试看:
select text
from sys.dm_exec_requests
cross apply sys.dm_exec_sql_text(plan_handle)
where session_id = *
session_id 就是你获得sp_execute这条语句的spid

如果会话已经结束,还可使用
select text
from sys.dm_exec_sql_text(most_recent_sql_handle)
where session_id=*


如果是在2000平台上的,因为没有DMV,所以只能通过fn_get_sql来查看,参考下面的。
declare @handle binary(20)
select @handle = sql_handle
from sysprocesses
where spid = *

select *
from ::fn_get_sql(@Handle)
这里的spid为当前锁进程spid


相关链接:http://msdn.microsoft.com/en-us/library/ms189451.aspx
[最后修改由 admin, 于 2010-10-26 21:43:46]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=1521

这篇日志没有评论。

此日志不可发表评论。