在SO上的几个帖子上,我看到有关在视图上创建索引的警告,这可能会导致锁争用。
其中一些帖子链接到此博文:Be ready to drop your indexed view,我读过,但未找到以下问题的答案:
是否存在使视图索引上的操作比“常规”索引上的操作更容易受到锁争用的事情?
答案 0 :(得分:0)
有几个原因导致视图上的索引更容易出现锁定争用问题 - 遗憾的是,这些是观点有用的原因:-(。我最熟悉的内容如下:
1)索引视图通常用于提供摘要信息 - 从MyTable组中选择x,y,sum(z)x,y - 其中单独的操作使用相同的x和y值更新不同的行然后这会导致在冲突中
2)如果索引视图与多个表相关,那么也可能发生锁定问题 - 如果可以控制与两个表相关的所有事务处理操作中的访问顺序,则可以降低此风险(即始终锁定Table1在Table2之前)。有时可以通过在单个表中包含非规范化值然后在该表上构建视图来解决此问题。
索引视图很棒 - 但带来了很大的风险。