sql server 阻塞

zenmeneng 2015-07-04 10:15:53
最近系统出现问题,用sp_who_lock监测看到很多都是自己阻塞自己,还有相互阻塞。(这些监测到的执行语句都不在事务里面)
监测到的结果如:进程号SPID:87被进程号SPID:87阻塞
看了阻塞语句,有些简单有些复杂,之前系统出现死锁,为了处理这个问题,已经把系统里面的事物,能放在外面的查询语句都放在事务外了,现在死锁倒是少了,但是阻塞最近几天很频繁,有时候很长时间系统都很缓慢,要等一段时间才正常。现在已束手无策了,求救各位大神有什么处理方法。如果能解答,马上给100分。
...全文
136 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
道玄希言 2015-10-30
  • 打赏
  • 举报
回复
我之前,一个程序沒用任何事务, 对一个表会频繁的查询和更新。 查询是將表的纪录分类取出来, 更新只是更新表中一个字段。 且每次也只更新一条纪录。 开始用了几年都沒问题, 后来给服务器加了几个CPU,將单CPU搞成了4CPU,结果,系统经常一大把的阻塞。。。 都是由于那个更新字段引起的。。。
LongRui888 2015-10-30
  • 打赏
  • 举报
回复
这个自己阻塞自己,一般是由于你的语句采用了并行的执行计划,在执行计划里会有 并行度 ,也就是说一个sql在执行时,会有多个线程来分工,那么既然是多个线程,就会有的完成的快,有的完成的慢,之间就会相互产生等待,这个类似于我们实际工作中的场景。 要解决这个问题,可以限制 并行度,在服务器属性里可以设置的。
专注or全面 2015-07-04
  • 打赏
  • 举报
回复
自己阻塞自己的是资源等待把,相互阻塞的是死锁,是不是因为相互阻塞的进程(死锁)引起等待的(自己阻塞自己)?

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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