我们为管理员提供了一个监控查询,该查询直接在Management Studio中运行。该查询是一个长期运行的查询,它分析表中的所有记录。现在我们已经注意到,当此查询运行时,传入更新将被阻塞,直到该查询完成。经过一些调查,我们发现在sql server上select会执行一个共享锁来阻止互斥锁,而更新会先执行一个更新锁,然后再执行一个互斥锁。
https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008-r2/ms186396(v=sql.105)
这是我们可以改变的行为吗?如果我们有一个公共门户作为前端,在那里我们有很多选择项,而且运行时间更长,并且在同一张表上有不同的更新,那么避免这种情况的最佳实践是什么?