Sql server 与WAITFOR DELAY连接的SQL事务
我浏览了一些帖子,但我找不到类似的案例来解释这个解决方案是否安全。我想一次执行许多Sql server 与WAITFOR DELAY连接的SQL事务,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,我浏览了一些帖子,但我找不到类似的案例来解释这个解决方案是否安全。我想一次执行许多UPDATE查询,但由于服务器性能问题,我一次只能运行有限数量的查询。通过在查询之间使用waitfordelay'00:00:05',并立即执行所有操作,解决方案似乎很简单。 我的交易将如下所示: Begin tran UPDATE Queries WAITFOR DELAY '00:00:05' UPDATE Queries WAITFOR DELAY '00:00:05' etc. 在手动验证有多
UPDATE
查询,但由于服务器性能问题,我一次只能运行有限数量的查询。通过在查询之间使用waitfordelay'00:00:05'
,并立即执行所有操作,解决方案似乎很简单。
我的交易将如下所示:
Begin tran
UPDATE Queries
WAITFOR DELAY '00:00:05'
UPDATE Queries
WAITFOR DELAY '00:00:05'
etc.
在手动验证有多少行受到影响后,我执行
commit-tran
。当执行commit-tran
时,是否所有查询都会同时更新,从而导致性能问题?commit-tran
在我的情况下使用是否安全 取决于“性能问题”是什么。如果它们与并发有关,那么在事务中使用WAITFOR
可能会使事情变得更糟。您能否批量提交这些事务?性能问题来自使用此数据库的应用程序服务器,与并发无关。我不想成批提交它们,因为我需要手动验证有多少行受UPDATE语句影响。打开事务会锁定行,并可能导致阻塞。如果要更新5000行或更多行,可能会升级为完全表锁!您不能在更新之前进行选择以计算行数吗?我仅在查询中使用UPDATE SET WHERE语句。我一次只更新20条语句,这是我的限制。我正在阅读这篇关于锁定的文章:我不认为锁定是我的问题。这取决于什么是“性能问题”。如果它们与并发有关,那么在事务中使用WAITFOR
可能会使事情变得更糟。您能否批量提交这些事务?性能问题来自使用此数据库的应用程序服务器,与并发无关。我不想成批提交它们,因为我需要手动验证有多少行受UPDATE语句影响。打开事务会锁定行,并可能导致阻塞。如果要更新5000行或更多行,可能会升级为完全表锁!您不能在更新之前进行选择以计算行数吗?我仅在查询中使用UPDATE SET WHERE语句。我一次只更新20条语句,这是我的限制。我正在阅读这篇关于锁定的文章:我认为锁定在我的案例中不是一个问题。