SQL SERVERkilled/rollback 会话一直running

SQL SERVERkilled/rollback 会话一直running

问题描述

A使用linkserver连接B

一些用了Linkserver的SQL莫名其妙的执行很长时间(平时是很快的),

然后手动Kill掉后,

KILL 63

会话也一直处于killed/rollback running状态,

使用以下SQL查看,

KILL 63 WITH STATUSONLY;
SPID 63: transaction rollback in progress. Estimated rollback completion: 0%. Estimated time remaining: 0 seconds.

原因分析

1.在B上的会话被堵塞。(这种情况亲测)

2.由于网络或服务异常导致B上的会话结束或异常不能返回结果。

解决方法

1.这种僵尸会话,实例重启回消失。

2.使用TCPView关闭连接。

TCPView下载地址

https://docs.microsoft.com/zh-cn/sysinternals/downloads/tcpview

在A上打开TCPView,输入B的IP,搜索,

sqlserver与B建立的连接可能很多,所以要以create time区分。

找到该连接后,右键→close Connection,(注意是close Connection,不是Kill process,kill process 会将实例杀掉)

posted @ 2021-07-23 10:56  JinweiChang  阅读(277)  评论(0编辑  收藏  举报