什么是它们各自的优点?它们似乎都可以限制查询需要搜索的行数和列数,那么选择其中之一的基础是什么?
可以包括基于表达式的列。
可以包括多个表的连接。
可以直接在用户SQL语句中引用。
允许所有确定性表达式。
具有复杂的先决条件,但使用起来简单一致(从 [indexedview] 中选择*)。
仅限于包含在表中的列。
只允许简单的过滤器表达式。
实现简单,但当查询基表时,优化器将决定是否适合使用。
WITH(NOEXPAND)
提示)。+1 - Branko Dimitrijevic首页视图:
i) 我需要从多个表中获取结果。
ii) 我在此视图上创建了索引以提高性能。
筛选索引:
i) 单个表中有很多记录。
ii) 特定值的特定where条件包含许多记录,并且此条件将频繁使用。或者此条件将用于非常重要的查询,其中性能至关重要。在这种情况下,我们可以在表上创建筛选索引。
请查看我的答案示例
SELECT
)对该视图的查询。 - marc_s