阻塞一般不会被自动处理,死锁通常sqlserver会处理,不过不是所有死锁都会

解决方案 »

  1.   

    你要分析哪个才是源头,乱kill危险更大
      

  2.   

    我有几篇文章你看看:http://blog.csdn.net/dba_huangzj/article/details/8697600
    http://blog.csdn.net/dba_huangzj/article/details/8697578
    http://blog.csdn.net/dba_huangzj/article/details/8697555
      

  3.   

    update 表 set bz=1 where id in(''234','2343','333','45')
    多个客户同时操作上面语句会阻塞吗?id都不相同,并且id为主键,表中数据100万条。
      

  4.   

    100万数据,如果索引不高效,会阻塞,因为可能会锁住一片的数据,不仅仅锁住自己那部分,然后刚好第二个客户要update这部分的数据时,就出现阻塞了。这个可能原因很多,不能简单说会还是不会,只能说“可能”
      

  5.   

    令外我的数据库中id是数值型的,我的update语句中是用单引号的,有没有影响?
      

  6.   

    阻塞会一直等待,死锁有一个会被当作牺牲品Kill掉。
      

  7.   

    SET LOCK_TIMEOUT
    把这个语句放到应用程序里是否可行,当有阻塞超时就自动关闭。
      

  8.   

    谢谢!
    还有我想问一下版主
    update 表 set 列1='a',列2='sdf',列3='sdfsdf' where 列4=1 and 列5=’sdf‘ and列6 =234 and 列7=1
    这个语句如果wher子句条件太多是不是比1个条件的要锁更多的行?
      

  9.   

    谢谢!
    还有我想问一下版主
    update biao set lie1=1,lie2='24234' where lie4=1 and lie5='asf' and lie6=234 and lie7='ss'
    这种如果where子句条件太多是不是比where子句只有一个条件的,会锁更多的行?
      

  10.   

    谢谢!
    还有我想问一下版主
    update biao set lie1=1,lie2='24234' where lie4=1 and lie5='asf' and lie6=234 and lie7='ss'
    这种如果where子句条件太多是不是比where子句只有一个条件的,会锁更多的行?