0

在 SSIS 加载期间,当员工表得到更新时,锁定就会生效。

但是,已使用以下语句禁用表上的锁升级:

  1. ALTER TABLE dbo.Employee SET (LOCK_ESCALATION = DISABLE)
  2. DBCC TRACEON (1211,-1)

但是,表(对象)确实被锁定并保留了将近一个小时。总数 更新(插入、更新、删除语句)约为 200,000

这里的最终目标并不是真正避免锁定,而是成功地允许对表进行读取。

没有。更新(插入/更新/删除)的数量非常高,每天 50,000 次,而实际上由于锁而受到影响的表上只有大约 50-100 个搜索/选择查询。

4

1 回答 1

0

来自 BOL:

SET LOCK_ESCALATION = 禁用

在大多数情况下防止锁升级。表级锁并不是完全不允许的。例如,当您在可序列化隔离级别下扫描没有聚集索引的表时,数据库引擎必须获取表锁以保护数据完整性。

Serializable 是 SSIS 包上的默认 IsolationLevel(单击控制流上的任何空白区域并检查包的属性)。任何更改您的表都没有聚集索引?

于 2012-04-10T12:04:28.070 回答