Jam*_*all 5 sql-server truncate snapshot-isolation sql-server-2014
我们有一个Truncate Table在 Snapshot 事务中运行的 proc 。这似乎导致了一个LOCK_M_S阻塞 sys 视图的锁sys.partitions。
有没有方便的解决方法?我喜欢不使用 truncate 发生的多余日志的效率,但不想锁定我的sys.partitions.
我很高兴应要求发布代码,但我很确定这是Truncate在 Snapshot 事务中的某种行为。我只是不知道。
截断和删除的锁定是不同的。至于锁定 TRUNCATE 的行为更像是“ALTER TABLE”而不是 DELETE。
来自 Microsoft 文档:
TRUNCATE TABLE (Transact-SQL)
“当使用行锁执行 DELETE 语句时,表中的每一行都将被锁定以进行删除。TRUNCATE TABLE 始终锁定表(包括架构 (SCH-M) 锁)和页面,但不是每一行”。
正如您所看到的,整个表上有一个架构锁。
| 归档时间: |
|
| 查看次数: |
277 次 |
| 最近记录: |