关于sysprocesses里的30余条恐怖sleeping信息 求大神

qq_24387221 2016-05-05 05:29:28
诸位大神,小弟又遇到麻烦了,最近一台数据库服务器的CPU一直比较高,我执行如下SQL语句,


SELECT
spid,waittype,waittime,lastwaittype,waitresource,cpu,
physical_io,memusage,login_time,last_batch,open_tran,cmd
FROM
sys.[sysprocesses]
WHERE
[spid]>50 AND [dbid]='5' and status='sleeping'
order by cpu desc

dbcc inputbuffer(135)

查询sys.processes 系统表信息,发现如下图信息:


有一个进程打开了一个transaction,但是却处于sleeping状态,更烦人的事情是,有张业务表貌似一直被它锁住,导致所有打卡信息无法写入进去,我知道这可能是程序设计上连接池的连接没有回滚或提交导致连接还遗留在sql服务器上,关键是现在如何去杀掉这些进程?求帮忙
...全文
338 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2016-05-06
  • 打赏
  • 举报
回复
数据库端可以执行kill 135, 强制结束进程. 应用程序端应改善写法,避免此种情况再次发生.
xiaoxiangqing 2016-05-06
  • 打赏
  • 举报
回复
先找出是哪些语句有问题
qq_24387221 2016-05-06
  • 打赏
  • 举报
回复
引用 2 楼 ap0405140 的回复:
根本解决方法: 查spid135对应程序的代码,优化写法,提高执行效率,避免长时间锁定.
但现在貌似锁表了,怎么去解决,数据库端是杀不了的,应用程序端能回滚连接吗
唐诗三百首 2016-05-05
  • 打赏
  • 举报
回复
根本解决方法: 查spid135对应程序的代码,优化写法,提高执行效率,避免长时间锁定.
唐诗三百首 2016-05-05
  • 打赏
  • 举报
回复
可以执行kill 135, 强制结束该进程. 事务会回滚,相关锁定将自动释放.

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧