数据库原理及应用(第3版)课件:索引及视图应用.pptx

数据库原理及应用(第3版)课件:索引及视图应用.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

索引与视图;目录;教学目标;1.1.1数据库系统的发展及趋势

1.人工数据管理阶段

;5.1索引基本概述;;;;表5-2SQLServer2022索引类型及其简单说明

;*5.1.2索引的结构及原理

1.索引的层次结构

索引的层次结构通常是一个单独的、物理的数据库结构。

(1)B-树及索引结点

B-树也称为平衡树,是一种多路径搜索树。索引按照B-树结构组织数据,B-树中的每页称为一个索引结点,顶端结点称为根结点,底层结点称为叶结点,底层结点称为叶结点。根结点与叶结点之间的其他索引级别称为中间级。B-树用于在查找特定数据时,提供一致性并节省查找时间。先从根结点开始,每次索引都按照一半或一少半的树枝进行。只有少量数据时,根结点可直指数据的实际位置。;*5.1.2索引的结构及原理

(2)叶层结点及页拆分

叶层结点位于B-树的最底层,是含有实际物理数据的参考点,如图5-1所示。叶更像浏览树的整体,在叶层得到数据的最终结果。根结点常指向很多数据,可指向中间结点(非-叶层结点),是根结点与数据物理存储的结点之间的其他结点,可指向其他的非-叶层结点,或指向叶层结点。

对数据索引时,由根结点开始,移到等于或小于所查找的最高值的结点,并查找下一层,然后重复该处理过程,逐层沿着树结构向下查找直到叶层。;*5.1.2索引的结构及原理

(2)叶层结点及页拆分

当数据被添加到数据表中的树结构时,结点需要拆分。在SQL结点等同于页——称为页拆分,如图5-2所示。页拆分时,数据自动来回移动以保证树平衡。第一半数据保留在旧页上,而其余数据则被移到新页中,且可保持树平衡。;2.索引的基本原理

SQL检索有两种方法:对表逐行查询和索引。SQL执行特定检索的方法取决于可用的索引、所需列、使用的连接和表的大小等。

表的存储组成分为两部分:一是用于存放表的数据页面,二是存放索引页面。索引比数据页面小很多,存放在索引页面。当数据检索时,系统先搜索索引页面,找到所需数据的指针,再直接通过指针从数据页面中读取对应的数据。

如图5-3所示为SQL的pubs示例数据库,employee表的第一列有个索引。显示索引存储每个emp_id值并指向??中含有各值的数据行。

表中执行索引,由指定emp_id值查找数据时,可识别emp_id列的索引,并由此索引查找所需数据位置,若无此索引,将从表第一行逐行搜索指定的emp_id值。

;5.1.3创建索引的策略

通常,可以考虑在以下属性列上建立索引:

1)在查询条件中常用的列上建立索引,如商品名称列,可加快查询速度

2)在连接条件中常出现的列上(外键)建立索引,可以加快连接速度

3)在常用排序的列上建立索引,利用索引的排序,可加快检索的速度

4)在经常需要搜索连续范围值的列上建立聚集索引,找到第一个匹配行后,满足要求的后续行在物理上是连续且有序的,因此只要将数据值直接与查找的终止值进行比较即可连续提取后续行。

建立索引并没明显提高查询速度却增加系统负载的列,不适合建立索引

1)在查询中很少用到的列上不应该建立索引。

2)在只有很少数据值的列上不应建立索引。如学生表中查询所有男生信息,结果集中的行占了所有行的很大比例,则在性别列上建立索引并不能明显提高查询速度。

3)在修改性能远远大于检索性能的列上不宜建立索引,由于增加索引时将降低增加、删除和更新行的速度,即降低修改性能。;1)案例5-1中,在学号属性列上建立索引后如何提高了查询效率?

2)在外键列上建立索引后怎样加快学生表和选课表的连接速度?;5.2常用的索引操作;在学生选课表按课程代码升序和学号升序建立唯一索引。

CREATEUNIQUEINDEXSC_IndexON选课(课程代码,学号)

;;;图5-5在非聚簇索引的表中插入数据;5.2.2索引的更新与删除

1.索引的更新

由于数据库中各种数据的不断插入、修改、删除和数据表的变化,数据库系统运行一段时间后,索引对系统的优化性能将出现降低,需要对索引进行分析和更新(重建)。

用命令语句确定更新索引,采用的语句格式为:

USE数据库名

DECLARE@table_idint--定义局部变量table_id

SET@table_id=object_id(Employee’)

DBCCSHOWCONTIG(@table_id);2.索引的删除

在索引建立后,将由系统操作并维护。建立索引是为了快速查询,但如果数据增删改频繁,系统将花费很多时间维护索引,从而降低了查询效率。为此,可以删除一些不必要的索引。SQLServer中提供了索引的删除功能。

删除索引的命令语法格式为:

文档评论(0)

ning2021 + 关注
实名认证
内容提供者

中医资格证持证人

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

领域认证该用户于2023年05月10日上传了中医资格证

1亿VIP精品文档

相关文档