检查死锁及阻塞也可参考:
sys.sysprocesses 能显示会话进程有多少, 等待时间, open_tran有多少事务, 阻塞会话是多少. 整体内容更为详细。 关键字段说明: spid 会话ID(进程ID),SQL内部对一个连接的编号,一般来讲小于50 kipid 线程ID blocked: 阻塞的进程ID, 值大于0表示阻塞, 值为本身进程ID表示io操作 waittime:当前等待时间(以毫秒为单位)。 open_tran: 进程的打开事务数 hostname:建立连接的客户端工作站的名称 program_name 应用程序的名称。 hostprocess 工作站进程 ID 号。 loginame 登录名。 [status] running = 会话正在运行一个或多个批 background = 会话正在运行一个后台任务,例如死锁检测 rollback = 会话具有正在处理的事务回滚 pending = 会话正在等待工作线程变为可用 runnable = 会话中的任务在等待,由scheduler来运行的可执行队列中。(重要) spinloop = 会话中的任务正在等待调节锁变为可用。 suspended = 会话正在等待事件(如 I/O)完成。(重要) sleeping = 连接空闲 wait resource 格式为 fileid:pagenumber:rid 如(5:1:8235440) kpid=0, waittime=0 空闲连接 kpid>0, waittime=0 运行状态 kpid>0, waittime>0 需要等待某个资源,才能继续执行,一般会是suspended(等待io) kpid=0, waittime=0 但它还是阻塞的源头,查看open_tran>0 事务没有及时提交。 如果blocked>0,但waittime时间很短,说明阻塞时间不长,不严重 如果status 上有好几个runnable状态任务,需要认真对待。 cpu负荷过重没有及时处理用户的并发请求
https://blog.csdn.net/weixin_30702413/article/details/99430184?utm_source=distribute.pc_relevant.none-task