【探讨】索引视图如何提高性能
2010-01-25 00:00:00 来源:WEB开发网核心提示: (2)可预先联接各个表并保存最终获得的数据集,(3)可保存联接或聚合的组合,【探讨】索引视图如何提高性能(5),2、应用索引视图的优点在实施索引视图前,分析数据库工作负荷,而不用更改应用程序本身;只是必须创建索引视图,优化器考虑事项查询优化器通过考虑几个条件来决定索引视图能否涵盖整个或部分查询,
(2)可预先联接各个表并保存最终获得的数据集。
(3)可保存联接或聚合的组合。
2、应用索引视图的优点
在实施索引视图前,分析数据库工作负荷。运用查询及各种相关工具(比如:SQL Profiler)方面的知识来确定可从索引视图获益的查询。频繁发生聚合和联接的情况最适合使用索引视图。无论是否频繁发生,只要某个查询需要很长的响应时间,同时快速获得响应的开销很高,那么就适合使用索引视图。
不是所有的查询都能从索引视图中获益。与一般索引类似,如果未使用索引视图,就无法从中受益。在这种情况下,不仅无法实现性能改善,而且会在磁盘空间、维护和优化方面产生额外的成本。然而,当使用索引视图时,可大大改善(在数量级上)数据访问。这是因为查询优化器使用存储在索引视图(大幅降低了查询执行的成本)中预先计算的结果。
从查询类型和模式方面来看,获益的应用程序一般包含:
• 大型表的联接和聚合
• 查询的重复模式
• 几组相同或重叠的列上的重复聚合
• 相同键上相同表的重复联接
• 以上各项的组合
查询优化器如何使用索引视图
SQL Server 查询优化器自动决定何时对给定的查询执行使用索引视图。不必在查询中直接引用视图以供优化器在查询执行计划中使用。所以,现有的应用程序可运用索引视图,而不用更改应用程序本身;只是必须创建索引视图。
优化器考虑事项
查询优化器通过考虑几个条件来决定索引视图能否涵盖整个或部分查询。这些条件对应查询中的一个 FROM 子句并由下列这几个部分组成:
• 查询 FROM 子句中的表必须是索引视图 FROM 子句中的表的超集。
更多精彩
赞助商链接