小编Pat*_*tto的帖子

快照,仍然死锁,ROWLOCK

我使用以下代码在我的数据库中打开了快照隔离

ALTER DATABASE MyDatabase
SET ALLOW_SNAPSHOT_ISOLATION ON

ALTER DATABASE MyDatabase
SET READ_COMMITTED_SNAPSHOT ON
Run Code Online (Sandbox Code Playgroud)

并摆脱了许多僵局.

但是当我需要每小时运行一个脚本来清理100,000多行时,我的数据库仍会产生死锁.

  • 有没有办法可以避免清理脚本中的死锁,我是否需要在该查询中专门设置ROWLOCK?
  • 有没有办法增加数据库使用的行级锁的数量?
  • 如何提升锁?从行级到页面级到表级?

我的删除脚本很简单:

delete statvalue
from statValue,
(select  dateadd(minute,-60, getdate()) as cutoff_date) cd
where temporaryStat = 1
and entrydate < cutoff_date
Run Code Online (Sandbox Code Playgroud)

现在我正在寻找快速解决方案,但长期解决方案会更好.

非常感谢,Patrikc

sql t-sql sql-server

5
推荐指数
2
解决办法
1902
查看次数

标签 统计

sql ×1

sql-server ×1

t-sql ×1