1

假设我有一个insert语句,其中值select来自另一个表中的语句。因此,一次插入了许多记录。我有另一个只需要插入一条记录的过程。如何让 SQL Server 让单个插入语句更及时地执行?在我的观察中,当多个插入运行时,单个插入被阻塞了相当长的一段时间。如果单曲能“溜进来”就好了。我尝试添加WITH (ROWLOCK)插入。

4

1 回答 1

1

批量插入可能会升级为表锁。您可以通过将表 DDL 更改为 来潜在地减少表锁LOCK_ESCALATION=DISABLE,但这可能会降低批量插入性能。

另一种方法是重写批量INSERT/SELECT INTO以批量插入,这样它一次不会持有超过5000 个锁。. 然而,这会改变每个工作单元的范围,因为您现在将在每个较小的批次之后提交,这可能是不可取的。

于 2013-11-15T05:01:30.773 回答