科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道SQL Server索引视图及性能提高简介(4)

SQL Server索引视图及性能提高简介(4)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

许多年来,Microsoft? SQL Server? 一直都提供创建虚拟表(称为视图)的功能。在过去,这些视图主要有两种用途

作者:ChinaITLab 来源:ChinaITLab 2007年9月4日

关键字: 索引视图 SQL Server SQL Server 各版本 数据库

  • 评论
  • 分享微博
  • 分享邮件

如果使用该选项,查询优化器在评估低成本的方法(该方法涉及查询中引用的列)时将忽略所有视图索引。

设计的考虑因素

为数据库系统找到适当的索引集是相当复杂的。尽管在设计普通索引时要考虑许多可能性,但将索引视图添加到架构会极大地增加设计和潜在结果的复杂性。例如,索引视图可用于:

● 查询中所引用表的任何子集。

● 查询中条件的任何子集(属于表的上述子集)

● 分组列。

● 聚合函数,如 SUM。

应同时设计表的索引和索引视图,以便从各个结构中获得最佳结果。由于索引和索引视图都可能对给定的查询有用,所以单独设计它们会导致多余的建议方案,以致存储和维护开销较高。在调整数据库的物理设计时,必须均衡考虑各种查询集的性能要求与数据库系统必须支持的更新操作。因此,为索引视图找到一种合理的物理设计是一项很具挑战性的任务,因而应该尽可能地使用“索引微调向导”。

如果存在许多索引视图可供查询优化器考虑用于特定查询,查询优化成本会显著增加。查询优化器可能考虑为查询中表的任意子集定义的所有索引视图。拒绝每一个视图之前,必须对它进行语法分析,然后研究其是否可能成为潜在的替换体。这可能需要一些时间,尤其是在有数百个此类的视图用于给定的查询时。

视图必须符合几项要求,您才能为其创建唯一的群集索引。在设计阶段,请考虑以下要求:

● 视图以及视图中引用的所有表都必须在同一数据库中,并具有同一个所有者。

● 索引视图无需包含要供优化器使用的查询中引用的所有表。

● 必须先为视图创建唯一群集索引,然后才可以创建其它索引。

创建基表、视图和索引以及修改基表和视图中的数据时,必须正确设置某些 SET 选项。另外,如果这些 SET 选项正确,查询优化器将不考虑索引视图。

视图必须使用架构绑定创建,视图中引用的任何用户定义的函数必须使用 SCHEMABINDING 选项创建。另外,还要求有一定的磁盘空间来存放由索引视图定义的数据。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章