每个的相对优点是什么?两者似乎都限制了查询需要遍历的行数和列数,那么是什么决定了选择一个而不是另一个的基础呢?
答案 0 :(得分:3)
索引视图
可以包含基于表达式的列。
可以包含多个表的连接。
可以直接在用户SQL语句中引用。
允许所有确定性表达式
具有复杂的先决条件,但使用简单且一致(从[indexedview]中选择*)
仅限于表格中包含的列。
仅允许过滤器的简单表达式。
易于实现,但优化程序将在查询基表时确定用法是否合适。
他们都不能使用非确定性表达。
答案 1 :(得分:0)
索引视图:
i)我必须从多个表中获得结果。
ii)我在此视图上创建索引以提升性能。
过滤索引:
i)单表中有很多记录。
ii)具有特定值的条件包含大量记录的特定情况。并且这种情况将非常频繁地使用。或者这种情况将用于非常重要的查询,其中性能是最重要的。 在这种情况下,我们可以在表上创建过滤索引。
检查我的答案,例如