WEB开发网
开发学院数据库MSSQL Server 【探讨】索引视图如何提高性能 阅读

【探讨】索引视图如何提高性能

 2010-01-25 00:00:00 来源:WEB开发网   
核心提示: (6) 在视图上创建唯一的聚集索引之前,确认会话的 SET 选项的设置正确无误,【探讨】索引视图如何提高性能(7),(7) 在视图上创建唯一的聚集索引,(8) 可用 OBJECTPROPERTY 函数检查现有表或视图上 ANSI_NULLS 和 QUOTED_IDENTIFIER 的值,并将之与

(6) 在视图上创建唯一的聚集索引之前,确认会话的 SET 选项的设置正确无误。

(7) 在视图上创建唯一的聚集索引。

(8) 可用 OBJECTPROPERTY 函数检查现有表或视图上 ANSI_NULLS 和 QUOTED_IDENTIFIER 的值。

4、索引视图的常见问题

(1)为何对可创建索引的视图类型存在限制?

为了确保在逻辑上可对视图进行增量维护,限制创建维护成本较高的视图,并限制 SQL Server 实施的复杂性。较大的视图集不具有确定性并与内容相关;其内容的“更改”独立于 DML 操作。无法对这些内容进行索引。在其定义中调用 GETDATE 或 SUSER_SNAME 的任何视图就属于这类视图。

(2)视图上的第一个索引为何必须为 CLUSTERED 和 UNIQUE?

必须为 UNIQUE 以便在维护索引视图期间,轻松地按键值查找视图中的记录,并阻止创建带有重复项目的视图(要求维护特殊的逻辑)。必须为 CLUSTERED,因为只有聚集索引才能在强制唯一性的同时存储行。

(3)为何查询优化器不选取我的索引视图用于查询计划?

优化器不选取索引视图主要有三种原因:

• 使用 SQL Server Enterprise 或 Developer 版本之外的其他版本。只有 Enterprise 和 Developer 版本才支持自动的查询对索引视图匹配。按名称引用索引视图并包含 NOEXPAND 提示,让查询处理器使用所有其他版本中的索引视图。

• 使用索引视图的成本可能超出从基表获取数据的成本,或者查询过于简单,使得针对基表的查询的速度既快又容易查找。当在较小的表上定义索引视图时,经常会发生这种情况。如要强制查询处理器使用索引视图,那么可使用 NOEXPAND 提示。如果最初不通过显式的方式引用视图,这样做就可能要求重新编写查询。您可获得带有 NOEXPAND 的查询的实际成本,并将之与不引用该视图的查询计划的实际成本相比较。如果两者的成本相近,那么您就可以认定用不用索引视图都不重要。

上一页  2 3 4 5 6 7 8  下一页

Tags:探讨 索引 视图

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接