- 1、本文档共91页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 数据库对象管理
第1章 SQL简介 第3章 数据库对象管理 3.1 索引 3.2 视图 3.3 存储过程 3.4 触发器 3.1 索引的概念 3.1.1 索引的概念 3.1.2 创建索引的优点与缺点 3.1.3 考虑建索引的列和不考虑建索引的列 3.1.1 索引的概念 索引是为了加速对表中数据行的检索而创建的一种分散的存储结构。索引是针对一个表而建立的,它是由数据页面以外的索引页面组成的。 数据库中的索引是一个列表,在这个列表中包含了某个表中一列或者若干列值的集合,以及这些值的记录在数据表中的存储位置的物理地址。 3.1.2 索引的优、缺点 1.创建索引的优点 可以大大加快数据检索速度。 通过创建唯一索引,可以保证数据记录的唯一性。 在使用ORDER BY和GROUP BY子句进行检索数据时,可以显著减少查询中分组和排序的时间。 使用索引可以在检索数据的过程中使用优化隐藏器,提高系统性能。 可以加速表与表之间的连接,这一点在实现数据的参照完整性方面有特别的意义。 2.创建索引的缺点 ①创建索引要花费时间和占用存储空间。 创建索引需要占用存储空间,如创建聚簇索引需要占用的存储空间是数据库表占用空间的1.2倍。在建立索引时,数据被复制以便建立聚簇索引,索引建立后,再将旧的未加索引的表数据删除。创建索引也需要花费时间。 ② 建立索引加快了数据检索速度,却减慢了数据修改速度。 因为每当执行一次数据的插入、删除和更新操作,就要维护索引。修改的数据越多,涉及维护索引的开销也就越大。如果将一些数据行插入到一个已经放满行的数据页面上,还必须将这个数据页面中最后一些数据移到下一个页面中去,这样,还必须改变索引页中的内容,以保持数据顺序的正确性。这就是对索引的维护。由于修改数据时要动态维护其索引,所以,对建立了索引的表执行修改操作要比未建立索引的表执行修改操作所花的时间要长。因此,创建索引虽然可以加快数据查询的速度,但是却会减慢数据修改的速度。 3.1.3考虑建索引的列和不考虑建索引的列 1. 考虑建索引的列 如果在一个列上创建索引,该列就称为索引列。索引列中的值称为关键字值。考虑建索引的列有如下这些: ① 主键 通常,检索、存取表是通过主键来进行的。因此,应该考虑在主键上建立索引。 ② 连接中频繁使用的列 用于连接的列若按顺序存放,系统可以很快地执行连接。如外键,除用于实现参照完整性外,还经常用于进行表的连接。 ③ 在某一范围内频繁搜索的列和按排序顺序频繁检索的列。 2. 不考虑建索引的列 建立索引需要产生一定的存储开销,在进行插入和更新数据的操作时,维护索引也要花费时间和空间,因此,没有必要对表中的所有列都建立索引。创建索引与否以及在哪些列上建立索引,要看建立索引和维护索引的代价与因建立索引所节省的时间相比哪个更合算。一般来说,如下一些列不考虑建立索引: ① 很少或从来不在查询中引用的列,因为系统很少或从来不根据这个列的值去查找数据行。 ② 只有两个或很少几个值的列(如性别,只有两个值“男”或“女”),以这样的列创建索引并不能得到建立索引的好处。 ③ 以bit、text、image数据类型定义的列。 ④ 数据行数很少的小表一般也没有必要创建索引。 3.2 聚簇索引与非聚簇索引 3.2.1 索引的分类 根据索引的顺序与数据表的物理顺序是否相同,可以把索引分成两种类型:聚簇索引与非聚簇索引。和表及视图一样,索引也是数据库对象。 聚簇索引(Clustered Index) 数据表的物理顺序和索引表的顺序相同,它根据表中的一列或多列值的组合排列记录。 非聚簇索引(Nonclustered Index) 数据表的物理顺序和索引表的顺序不相同,索引表仅仅包含指向数据表的指针,这些指针本身是有序的,用于在表中快速定位数据。 3.3 索引的创建与管理 SQL Server 2005中,创建索引有两种方法: 使用T-SQL语句创建索引 使用SQL Server Management Studio创建索引 在一个表的一个或多个列上创建索引时,应考虑以下几点: ① 当在一个表上创建PRIMARY KEY约束或UNIQUE约束时,SQL Server自动创建唯一性索引。不能在已经创建PRIMARY KEY约束或UNIQUE约束的列上创建索引。定义PRIMARY KEY 约束或UNIQUE约束与创建标准索引相比应是首选的方法。 ② 必须是表的拥有者才能创建索引。 ③ 在一个列上创建索引之前,确定该列是否已经存在索引。 ④ 也可以在视图上创建索引,但创建视图时必须带参数SCHEMABINDING。在视图上创建索引的创建方法参见SQL Server 2005随机帮助。 3.3 索引的创建与管理 3.3.1 使用T-
您可能关注的文档
- 福建南纸财务分析报告正式版.doc
- 3.看星座.ppt
- 时政小报.ppt
- 长虹彩电显像管资料.doc
- 十三星座和它们的故事 天象馆共享特场解说词.doc
- 《观天认星》课件7.ppt
- 影像管理系统.doc
- creek roman.ppt
- 语文教材分析正式文件.doc
- 鲁迅生平大事.ppt
- 2020版 沪科技版 高中生物学 必修2 遗传与进化《第4章 生物的进化》大单元整体教学设计[2020课标].docx
- 情绪价值系列报告:春节消费抢先看-国证国际证券.docx
- 精品解析:北京市东直门中学2023-2024学年高二下学期3月阶段性考试(选考)物理试题(解析版).docx
- 2020版 沪科技版 高中生物学 必修2 遗传与进化《第4章 生物的进化》大单元整体教学设计[2020课标].pdf
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第1章 人体的内环境和稳态》大单元整体教学设计[2020课标].pdf
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第1章 人体的内环境和稳态》大单元整体教学设计[2020课标].docx
- 液冷盲插快接头发展研究报告-全球计算联盟.docx
- 精品解析:北京市东直门中学2023-2024学年高二下学期3月阶段性考试(选考)物理试题(原卷版).docx
- 精品解析:北京市东直门中学2024届高三考前练习数学试卷(解析版).docx
- 2020版 沪科技版 高中生物学 选择性必修1 稳态与调节《第2章 人体的神经调节》大单元整体教学设计[2020课标].docx
文档评论(0)