- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下述情况可考虑建立非聚集索引 包含大量非重复值的列。 不返回大型结果集的查询。 经常作为查询条件使用的列。 经常作为连接和分组条件的列。 */55 唯一索引 确保索引列不包含重复值。 在组合唯一索引的情况下,可以确保索引列中每个值的组合都是唯一的。 例如,如果在last_name、first_name和middle_initial列的组合上创建了唯一索引full_name,则该表中任何两个人都不可以具有完全相同的名字。 聚集索引和非聚集索引都可以是唯一的。 */55 说明 如果必须要实施唯一性来确保数据的完整性,则应在列上创建UNIQUE约束或PRIMARY KEY约束,而不要创建唯一索引。 例如,如果限制身份证号码(sid)列的取值不重复,则可在sid列上创建UNIQUE约束。 实际上,当在表上创建PRIMARY KEY约束或UNIQUE约束时,系统会自动在这些列上创建唯一索引。 */55 4.包含列索引 SELECT dept from employees WHERE eid=E02 如果employees只在eid列上建有一个非聚集索引,没有聚集索引。当查找到叶级索引210页时匹配 “eid = E02”的匹配数据,下一步要做的事情,是取出E02索引关键字对应的行定位器值。 根据行定位器值到数据页中查找该职工所在部门。如果扩展叶级索引项内容,可以省略最后一步从叶级索引到数据页的查找。 eid dept 行定位器 */55 建立包含列索引的好处 如果查询涉及的所有列都包含在索引中,则可以显著提高查询性能。 因为DBMS可直接在索引B-树中找到所有的列值,而不需要再访问表或聚集索引数据,从而减少磁盘 I/O 操作。 因此可考虑扩展非聚集索引的叶级,使其除了包含索引关键字外,还包含查询涉及的列。 这种将非索引关键字也放置到非聚集索引叶级的索引就称为包含列索引。 */55 建立包含列索引的好处(续) 非键列可以是不允许作为索引键列的数据类型(有些数据类型是不允许建立索引的,比如text等)。 在计算索引键列个数和索引键大小时,数据库管理系统不考虑这些非索引键列。 */55 5.筛选索引 筛选索引是一种经过优化的非聚集索引,适用于涵盖从定义完善的数据子集中选择数据的查询。 筛选索引使用筛选谓词对表中的部分数据行进行索引。 与对全表建立索引相比,设计良好的筛选索引可以提高查询性能、减少索引维护开销并可降低索引存储开销。 */55 设计筛选索引注意事项 为了设计有效的筛选索引,必须了解应用程序使用哪些查询以及这些查询与数据子集的关联。 例如: 所含值中大部分为 NULL 的列 含异类类别的值的列 含不同范围的值的列 都属于具有定义完善子集的数据。 */55 筛选索引优点 提高了查询性能和计划质量; 减少了索引维护开销; 减少了索引存储开销。 */55 适合建立筛选索引的情况 当只需要查询列中少量的相关值时,可以针对值的子集创建筛选索引。 异类数据的筛选索引。表中含有异类数据行时,可以为一种或多种类别的数据创建筛选索引。 */55 适宜构建筛选索引的情况 仅包含少量非NULL值的稀疏列。 包含多种类别数据的异类列。 包含多个范围值(如金额、时间和日期)的列。 由列值的简单比较逻辑定义的分区表。 */55 数据库基础与实践技术( SQL Server 2008) 第8章 索引 8.1 基本概念 8.2 索引结构及类型类型 8.3 创建索引 */55 8.1 索引基本概念 索引与书籍中的目录类似。 索引使对数据的查找不需要对整个表进行扫描,就可以在其中找到所需数据。 可以为表中的单个列建立索引,也可以为一组列(索引项)建立索引。 索引一般采用B树结构。 */55 索引及数据间的对应关系示意图 */55 索引的组织方式 索引项按数据页(一块固定大小的连续存储空间)存储。 表中的全部索引连在一起。 */55 8.2 索引存储结构及类型 从索引对物理数据的影响来划分,索引分为: 聚集索引(Clustered Index) 非聚集索引(Non-clustered Index) SQL Server 2008根据索引的功能,将索引细分为:聚集索引、非聚集索引、唯一索引、包含列索引、筛选索引等。 聚集索引和非聚集索引都采用B-树结构来存储索引项,而且都包含数据页和索引页,其中索引页存放索引项和指向下一层的指针,数据页用来存放数据。 */55 8.2.1 B-树结构 */55 8.2.2 索引类型 聚集索引 非聚集索引 唯一索引 包含列索引 筛选索引 视图索引 XML索引 全文索引 √ √ √ √ √ */55 1. 聚集索引 聚集索引的B-树按自下而上建立,最下层的叶级节点存放数据,它同时也是数据页。 多个数据页生成一个中间层节点的索
文档评论(0)