在SQL Server上长时间运行选择锁定更新

时间:2018-11-21 08:38:39

标签: sql sql-server

我们为管理员提供了一个监控查询,该查询直接在Management Studio中运行。该查询是一个长期运行的查询,它分析表中的所有记录。现在我们已经注意到,当此查询运行时,传入更新将被阻塞,直到该查询完成。经过一些调查,我们发现在sql server上select会执行一个共享锁来阻止互斥锁,而更新会先执行一个更新锁,然后再执行一个互斥锁。

https://www.sqlpassion.at/archive/2014/07/28/why-do-we-need-update-locks-in-sql-server/#comment-104367

https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms186396(v=sql.105)

这是我们可以改变的行为吗?如果我们有一个公共门户作为前端,在那里我们有很多选择项,而且运行时间更长,并且在同一张表上有不同的更新,那么避免这种情况的最佳实践是什么?

0 个答案:

没有答案