当前位置:Gxlcms > 数据库问题 > Sql Server 索引之唯一索引和筛选索引

Sql Server 索引之唯一索引和筛选索引

时间:2021-07-01 10:21:17 帮助过:3人阅读

  • 不能对视图创建筛选索引。 但是,查询优化器可以从对视图中引用的表定义的筛选索引中获益。 对于从视图中选择数据的查询,如果查询结果正确,查询优化器会考虑对此查询使用筛选索引。

筛选索引与索引视图相比,具有以下优点:

  • 减少了索引维护开销。 例如,相对于索引视图而言,查询处理器使用更少的 CPU 资源便可更新筛选的索引。
  • 改善了计划质量。 例如,在查询编译期间,查询优化器考虑使用筛选的索引的情况要比考虑使用等效的索引视图的情况多。
  • 联机索引重新生成。 您可以在筛选的索引可用于查询时重新生成它们。 索引视图不支持联机索引重新生成
  • 非唯一索引。 筛选索引可以是非唯一的,而索引视图必须是唯一的。
  • 筛选索引是针对一个表定义的,仅支持简单比较运算符。 如果需要引用多个表或具有复杂逻辑的筛选表达式,则应创建视图。

  • 如果筛选索引表达式等效于查询谓词并且查询并未在查询结果中返回筛选索引表达式中的列,则筛选索引表达式中的列不需要作为筛选索引定义中的键或包含列。
  • 如果查询谓词在不与筛选索引表达式等效的比较中使用了筛选索引表达式中的某列,则该列应为筛选索引定义中的键或包含列。
  • 如果筛选索引表达式中的某列在查询结果集中,则该列应为筛选索引定义中的键或包含列。
  • 表的聚集索引键不需要是筛选索引定义中的键或包含列。 聚集索引键自动包含在所有非聚集索引(包括筛选索引)中。
  • 如果筛选索引结果的筛选索引表达式中指定的比较运算符会导致隐式或显式数据转换,则转换发生在比较运算符的左边时,会出现错误。 解决方法是在比较运算符的右边编写包含数据转换运算符(CAST 或 CONVERT)的筛选索引表达式。

Sql Server 索引之唯一索引和筛选索引

标签:

人气教程排行