第21章 索引进阶.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第21章 索引进阶

第21章 索引进阶 与书的目录一样,数据库中的索引使用户可以快速找到表或索引视图中的特定信息。索引包含从表或视图中一个或多个列生成的键,以及映射到指定数据的存储位置的指针。通过创建设计良好的索引以支持查询,可以显著提高数据库查询和应用程序的性能。 21.1 了解索引 本节主要介绍索引基础知识和索引类型。索引类型包括聚集索引、非聚集索引、惟一索引、包含列索引、全文索引等等。 21.1.1 什么是索引 索引是一种依附于表或视图的结构,主要目的是加快从表或视图中检索数据的速度。比如说,学生表中没有索引,那么要检索最大的一个学生编号,可能要从第一行一直查询到最后一行。而如果有了索引,可能第一行数据就是,而省略了检索其他行的时间。 21.1.2 索引的类型 索引主要分为聚集索引、非聚集索引和惟一索引等。这里我们通过概念来介绍常见的几种索引。 (1)聚集索引 (2)非聚集索引 (3)惟一索引 (4)包含列索引 (5)全文索引 (6)空间索引 (7)筛选索引 (8)XML索引 (9)视图索引 21.2 设计索引 本节首先介绍索引设计任务,然后讲解如何设计通用索引、聚集索引、非聚集索引、惟一索引。设计索引是本章的重点内容。 21.2.1 索引设计任务 要提高数据库的应用性能,就必须为数据库设计索引,但也不是有了索引就一定能提高性能,还要设计好的索引、高效的索引。如果索引太多,占用的磁盘空间和维护开销都会加大,也不是好事情。所以索引关键字只有几列,则数据库性能反而更高。高效的索引不是只有一条途径,也不是固定的,要针对不同的数据库进行不同的设计。添加、修改和删除索引不会影响数据库架构或应用程序设计。 21.2.2 设计通用索引 要设计好的索引,是一个渐进的过程,经验丰富的数据库管理员才能设计出有效而快速的索引。即使数据不复杂、工作负荷不大,设计索引的任务依然很重要。了解数据库、查询和数据列的特征,可以帮助数据库管理员设计出好的索引。设计索引时需要遵循的准则有:数据库准则、查询准则、列准则。 21.2.3 设计聚集索引 聚集索引基于数据行的键值在表内排序和存储这些数据行。每个表只能有一个聚集索引,因为数据行本身只能按物理顺序存储,就是只有一种顺序。对列创建聚集索引主要实现下列功能: (1)用于经常使用的查询。 (2)提供高度惟一性。 (3)可用于范围查询。 21.2.3 设计聚集索引 如果没有使用UNIQUE关键字创建聚集索引,数据库引擎将向表自动添加一个4字节的uniqueifier列。必要时,数据库引擎将向行自动添加一个uniqueifier值以保证每个键惟一。自动添加的列和列值供内部使用,普通用户都不能查看或访问。 1.设计聚集索引应考虑的查询注意事项 2.设计聚集索引应考虑的列注意事项 3.聚集索引不适合的属性列 21.2.4 设计非聚集索引 前面介绍过,非聚集索引就类似一本书,包含目录和文章,就是包含两个存储内容。非聚集索引包含两部分:索引键值和指向表数据存储位置的行定位器。SQL Server允许对表或索引视图创建多个非聚集索引。设计非聚集索引的目的是改善频繁使用,却没有建立聚集索引查询的性能。 1.设计非聚集索引应考虑的数据库注意事项 2.设计非聚集索引应考虑的查询注意事项 3.设计非聚集索引应考虑的列注意事项 21.2.5 设计惟一索引 惟一索引就是索引键中不包含重复的值,这样表中的每一行都会惟一性,如我们一般把ID列作为设计为惟一索引,因为ID必须惟一。SQL Server还提供了多列惟一索引,这样索引能够保证索引键中值的每个组合都是惟一的。 聚集索引和非聚集索引都可以惟一。只要列中的数据是惟一的,就可以为表创建一个惟一聚集索引和多个惟一非聚集索引。 (1)惟一索引的优点 (2)设计惟一索引的注意事项 21.2.6 设计筛选索引 筛选索引与全表索引相比具有以下优点: (1)提高了查询性能和计划质量 (2)减少了索引维护开销 (3)减少了索引存储开销 21.2.7 选择筛选索引还是全表索引 前面讲解了很多设计索引的准则,在设计索引时必须要应用程序有哪些索引,这些查询与数据子集之间有什么关系。以下提供了筛选索引好于全表索引的各种情况。 1.数据子集的筛选索引 2.异类数据的筛选索引 3.视图与筛选索引 4.索引视图 5.键列 6.筛选谓词中的数据转换运算符 7.引用依赖项 8.何时使用筛选索引 9.筛选索引功能支持 21.2.8 筛选索引进行查询的注意事项 如果不同的查询结果都会相同,则不论是否使用筛选索引,查询优化器都会建议使用索引。前面创建的筛选索引FIBillOfMaterialsWithEndDate对以下两个查询有效。 1.参数化查询 2.执行书签查找操作的查询 21.3 实现索引 前两节讲到

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档