我有以下情况:存储过程间歇性地使用两个表。我必须同时执行这个 sp(比如同时执行 50 个)。这让我在大约 33% 的情况下陷入僵局。问题是:在这里使用 sp_getapplock 合适吗?我要做的就是添加:
exec sp_getapplock @Resource = 'resource_name', @LockMode = 'exclusive',@LockTimeout = '60000', @DbPrincipal = 'dbo'
作为事务中的第一个命令,一切似乎都在工作。除了并发,但没关系。令人不安的是,我正在尝试做数据库实际应该做的事情。也许这种方法有更好的选择或严重的缺点?