首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

历程阻塞

2013-03-29 
进程阻塞今天在做数据库发布的时候,刚新建发布,发现第一步运行就一直在转。怀疑是进程被阻塞了。于是执行了

进程阻塞
今天在做数据库发布的时候,刚新建发布,发现第一步运行就一直在转。怀疑是进程被阻塞了。
于是执行了下:
select * from sys.sysprocesses where blocked<>0

发现如下进程阻塞情况:
历程阻塞
根据日期分析,75号进程应该是发布订阅的进程,被15号进程给阻塞了,但是15号进程被21号进程阻塞。
通过执行sp_who2 15 和sp_who2 21查看进程信息如下:
历程阻塞
历程阻塞

15号和21号进程从3月20号就开始阻塞了,用kill方法没法结束,提示:只能终止用户进程。
问下大家,有办法解决吗?除开重启数据库的方法外。
[解决办法]
为什么设置auto shrink? 将这个设定取消看看。

[解决办法]
按微软的解释shrink是可以随时停止的,不存在回滚。
auto_shrink一定要关掉啊,以前生产环境应为这个导致用户登录不了。
[解决办法]
不建议使用自动收缩,checkpoint那个也是系统进程无法kill掉的。你的这个阻塞是应为自动收缩引起了后续的阻塞,而自动收缩本来就是极其耗费资源的操作,并且你也不保证期间会不会出问题,所以自动收缩可能会持续很久,特别是你的IO出现压力的时候,收缩时间更长。就造成阻塞了,这个进程杀不掉的,所以如果关掉自动收缩都无效的话,只能重启服务了
[解决办法]
kill 加上 with statusonly 选项可以显示事务会滚的进度。

热点排行