首页 / 数据库 / SQLServer / 用SQL Server 2005索引视图提高性能二
用SQL Server 2005索引视图提高性能二2007-06-01 本站收集整理 视图限制如要在 SQL Server 2005 中的视图上创建一个索引,相应的视图定义必须包含:ANY、NOT ANY OPENROWSET、OPENQUERY、OPENDATASOURCE不精确的(浮型、实型)值上的算术 OPENXMLCOMPUTE、COMPUTE BY ORDER BYCONVERT 生成一个不精确的结果 OUTER 联接COUNT(*) 引用带有一个已禁用的聚集索引的基表GROUP BY ALL 引用不同数据库中的表或函数派生的表(FROM 列表中的子查询) 引用另一个视图DISTINCT ROWSET 函数EXISTS、NOT EXISTS 自联接聚合结果(比如:SUM(x)+SUM(x))上的表达式 STDEV、STDEVP、VAR、VARP、AVG全文谓词 (CONTAINS、FREETEXT、CONTAINSTABLE、FREETEXTTABLE) 子查询不精确的常量(比如:2.34e5) 可为空的表达式上的 SUM内嵌或表值函数 表提示(比如:NOLOCK)MIN、MAX text、ntext、image、filestream 或 XML 列不具有确定性的表达式 TOP非 unicode 排序 UNIONSQL Server 2005 可检测到的矛盾情况表示视图将为空(比如,当 0=1 及 ...)注意 索引视图可能包含浮型和实型列;但是,如果这类列为非永久性的计算列,则不能包含在聚集索引键中。GROUP BY 限制如果存在 GROUP BY,VIEW 定义为:一定包含 COUNT_BIG(*)。一定不包含 HAVING、CUBE、ROLLUP 或 GROUPING()。这些限制仅适用于索引视图定义。即便不能满足上述 GROUP BY 限制,查询也可以在其执行计划中使用索引视图。有关索引的要求执行 CREATE INDEX 语句的用户必须是视图所有者。如果视图定义包含 GROUP BY 子句,唯一的聚集索引的键只能引用 GROUP BY 子句所指定的列。一定不能在启用 IGNORE_DUP_KEY 选项的情况下创建索引。