Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 与WAITFOR DELAY连接的SQL事务_Sql Server_Sql Server 2008_Tsql - Fatal编程技术网

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条语句,这是我的限制。我正在阅读这篇关于锁定的文章:我认为锁定在我的案例中不是一个问题。