【发布时间】:2016-03-15 00:28:07
【问题描述】:
假设我有一个 SQL Server 表,它有数百万行,每分钟接收超过 2000 次插入。一个单独的进程需要对该表进行批量更新,假设使用将更新 1000 行的 where 子句。但它不关心性能,并且可以选择使用主键运行 1000 次单行更新。
如果批量更新运行时间过长,它会阻止传入的插入,对吗?而单独更新行将允许插入通过裂缝而不是阻塞?那么从优化插入性能的角度来看,我最好一次运行更新一行吗?
【问题讨论】:
-
插入不会阻止更新(除非您请求表锁定..)。如果您的更新没有阻止整个表(单个事务占用超过 5000 个锁),我没有看到任何问题。我推荐通过示例模式和表上的索引以及示例更新查询提出有关 DBA SE 的问题
标签: sql-server