日期:2014-05-18 浏览次数:20465 次
一个事务未提交,导致别的事务必须等待,这就是阻塞, 查看阻塞可以用sp_lock,打开三个查询分析器, 第一个写: begin transaction tran1 update products set productName=productName+'A' where ProductId=1 waitfor delay '00:00:30' commit transaction tran1 第二个写: select * from products 第三个写: sp_lock 依次运行第一个、第二个、第三个, 然后查看第三个分析器,看看Status列, 看是否有Status='Wait'的行,比如我这里查看有这么一行: 53 6 117575457 1 KEY (010086470766) S WAIT 其中ObjId=117575457 然后运行: use northwind select object_name(117575457) 可以看到对应的表为 Products
------解决方案--------------------
常用的就是SQL profiler GUI进行跟踪
但是用这个跟踪对生产中的系统会产生大量额外的I/O操作
建议把
跟踪封装到存储过程 跟踪
然后对生成的trc分析
重点关注
duration列
------解决方案--------------------