【探讨】索引视图如何提高性能
2010-01-25 00:00:00 来源:WEB开发网核心提示: 看来还得优化,希望各位博友指点一下!二、索引视图的学习总结1、什么是索引视图?在视图上创建唯一的聚集索引及非聚集索引,【探讨】索引视图如何提高性能(4),来提高最复杂的查询的数据访问性能,具有唯一的聚集索引的视图即为索引视图,索引视图可通过以下方式提高查询性能:(1)可预先计算聚合并将其保存在索
看来还得优化,希望各位博友指点一下!
二、索引视图的学习总结
1、什么是索引视图?
在视图上创建唯一的聚集索引及非聚集索引,来提高最复杂的查询的数据访问性能。具有唯一的聚集索引的视图即为索引视图。从数据库管理系统 (DBMS) 的角度看来,视图是对数据(一种元数据类型)的一种描述。当创建了一个典型视图时,通过封装一个 SELECT 语句(定义一个结果集来表示为虚拟表)来定义元数据。当在另一个查询的 FROM 子句中引用视图时,将从系统目录检索该元数据,并替代该视图的引用扩展元数据。视图扩展之后,SQL Server 查询优化器会为执行查询编译一个执行计划。查询优化器会搜索针对某个查询的一组可能的执行计划,并根据对执行每个查询计划所需的实际时间的估计,选择所能找到的成本最低的计划。
对于非索引视图,解析查询所必需的视图部分会在运行时被具体化。任何计算(比如:联接或聚合)都在每个引用视图的查询执行时完成1。在视图上创建了唯一的聚集索引后,该视图的结果集随即被具体化,并保存在数据库的物理存储中,从而在执行时节省了执行这一高成本操作的开销。
在查询执行中,可通过两种方式使用索引视图。查询可直接引用索引视图,或者更重要的是,如果查询优化器确定该视图可替换成本最低的查询计划中的部分或全部查询,那么就可以选定它。在第二种情况中,使用索引视图替代基础表及其一般索引。不必在查询中引用视图以使查询优化器在查询执行时使用该视图。这使得现有的应用程序可以从新创建的索引视图中受益,而不必进行更改。
索引视图可通过以下方式提高查询性能:
(1)可预先计算聚合并将其保存在索引中,从而在查询执行时,最小化高成本的计算。
更多精彩
赞助商链接