如何监控孤立的事务
前段应用程序执行某个操作之后,由于报错或者超时,导致会话状态变成了sleeping,但是开启的事务并没有提交或者回滚。目前能抓取到这个会话的SPID,和最后一次执行的语句。有没有什么好的办法能抓取到这个会话执行的完整的sql,以便迅速定位问题。因为只抓到最后一次执行的语句有时候定位问题太难了。
方法1 开启profiler 筛选事务ID>0的,缺点:抓取的数据太多,对性能产生影响
方法2,等问题出现的时候,通过抓取阻塞信息,获取SPID,然后根据SPID再去开profiler。缺点:需要人为干预
这个问题一直没有很好的办法来解决。