我正在执行一个存储过程,它对几个非常小的表进行了一百多次更新,但我得到的性能非常差,并且所有并发用户似乎都在不断地互相阻塞。
虽然计划在今年晚些时候进行完整的存储过程重写,但在此期间,我希望通过强制对每个受影响的表使用行级锁来缓解问题。
在Sybase上,您可以(或至少可以,在2007年左右)使用以下语句为表强制使用行级锁:
在SQL Server中,似乎唯一能获得相同效果的方法就是在每个更新或插入语句中都使用WITH(ROWLOCK)。即使如此,它也只是一个可能被忽略的提示。
在SQL Server中,有没有一种方法可以强制(或更强烈地)倾向于为给定表中的所有更新进行行级锁定?
虽然计划在今年晚些时候进行完整的存储过程重写,但在此期间,我希望通过强制对每个受影响的表使用行级锁来缓解问题。
在Sybase上,您可以(或至少可以,在2007年左右)使用以下语句为表强制使用行级锁:
alter table titles lock datarows
在SQL Server中,似乎唯一能获得相同效果的方法就是在每个更新或插入语句中都使用WITH(ROWLOCK)。即使如此,它也只是一个可能被忽略的提示。
在SQL Server中,有没有一种方法可以强制(或更强烈地)倾向于为给定表中的所有更新进行行级锁定?