SQL Server:筛选索引与索引视图

时间:2017-05-03 21:43:56

标签: sql-server indexing

每个的相对优点是什么?两者似乎都限制了查询需要遍历的行数和列数,那么是什么决定了选择一个而不是另一个的基础呢?

2 个答案:

答案 0 :(得分:3)

索引视图

  • 可以包含基于表达式的列。

  • 可以包含多个表的连接。

  • 可以直接在用户SQL语句中引用。

  • 允许所有确定性表达式

  • 具有复杂的先决条件,但使用简单且一致(从[indexedview]中选择*)

A filtered index

  • 仅限于表格中包含的列。

  • 仅允许过滤器的简单表达式。

  • 易于实现,但优化程序将在查询基表时确定用法是否合适。

他们都不能使用非确定性表达。

答案 1 :(得分:0)

索引视图:

i)我必须从多个表中获得结果。

ii)我在此视图上创建索引以提升性能。

过滤索引:

i)单表中有很多记录。

ii)具有特定值的条件包含大量记录的特定情况。并且这种情况将非常频繁地使用。或者这种情况将用于非常重要的查询,其中性能是最重要的。 在这种情况下,我们可以在表上创建过滤索引。

检查我的答案,例如

MS SQL Server 2008 - UPDATE a large database