首页 > 代码库 > SQL Server 主动防止阻塞的 1 方法

SQL Server 主动防止阻塞的 1 方法

方法 1、

         set lock_timeout 5000;  这里设置超时为5秒;

        例子:

              连接A

             begin tran
             update dbo.TestTable
             set String = ‘AAA‘
             where ID=1;
             go

             连接B

             update dbo.TestTable
             set String = ‘BBB‘
             where ID=1;
             go

             

             可以看到不设置 lock_timeout 它是会一直等下去的。

             连接C      

             set lock_timeout 5000;

             update dbo.TestTable
             set String = ‘BBB‘
             where ID=1;
             go

             

            可以看到只要等5s超时就不等了、问题来了,

            连接C的下一个批处理也是5s超时吗?我们来测一下。

           

          还是5s说明这个set lock_timeout是对连接有效的,不是只对单个的批处理。

 

SQL Server 主动防止阻塞的 1 方法