- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库原理9-1
第三篇:系统篇 授课教师:顾留碗 复习上节课内容 嵌入式SQL 游标的使用 声明、打开、读取、关闭及删除 存储过程的使用 创建、执行、查看、修改及删除 ODBC编程 工作原理及工作流程 本篇讲解数据库管理系统中查询处理和事务管理的基本概念和基本知识。 第九章关系查询处理和查询优化,介绍查询处理和查询优化的基本概念、方法和技术; 第十章数据库恢复技术,介绍事务的基本概念和事务的性质,讲解数据库系统遇到故障后进行恢复技术及方法; 第十一章并发控制,介绍并发操作可能造成数据不一致的问题,讲解并发控制的基本概念和最常用的封锁技术; 本章学习内容 索引的创建及管理 关系数据库系统的查询处理 关系数据库系统的查询优化 代数优化 物理优化 一、索引的创建及管理 问题1:表上必须建立索引么? 答案:否;没有建立索引的数据库和表可以正常工作; 问题2:什么时候需要在表上建立索引? 举例1:到一座大厦找人 逐个房间去找; 利用楼层分布图快速找到要去的房间;(楼层分布图=索引) 举例2:看一部小说 逐个查看每页找到指定的内容; 通过翻阅目录快速浏览指定内容;(目录=索引) 可把数据表理解为大厦和图书,那么索引就好比是大厦的楼层分布图和图书的目录,作用是提供对数据的快速定位功能; 数据库中的索引是一个表中所包含的值(一列或者若干列)的列表,其中注明了这些值的记录在数据表中的存储位置的物理地址; 在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据;尤其是当表的数据很多,而SELECT查询又非常频繁时,建立索引和不建立索引在查询数据时会有很大差异。 问题3:为什么索引可以加快查询速度? 索引也是由记录组成,每行记录包括表中的一列或者多列值的集合,而不是表中所有数据,相应地指向表中物理地址的逻辑指针(房间号); 这样,当我们要查询数据时,就可以快速比较列值,然后只接到物理数据页中提取数据,所以可以大大加快速度; 问题4:创建的索引一定会被使用么? 索引是否建立由用户需要决定,而索引是否使用有数据库引擎中的查询优化器决定;执行查询时,查询优化器会自动评估能够用于检索数据的每个方法,然后选择最有效的方法。 索引相关内容: 创建索引的必要性 索引的类型 建立索引 查看索引 删除索引 1、创建索引的必要性 考虑创建索引的情况: 定义有主关键字和外部关键字的列; 需在指定范围中快速或频繁查询的列; 需要按排序顺序快速或频繁检索的列; 在集合过程中需要快速或频繁组合到一起的列 ; 考虑不创建索引的情况: 只有较少行数的表没必要建索引; 在查询中几乎不涉及的列; 很少有唯一值的列如记录“性别”的列; 由text,ntext或image数据类型定义的列 ; 2、索引的类型 聚集索引与非聚集索引是从索引数据存储的角度来区分的;而唯一索引是从索引取值来区分的; 1)聚集索引(Clustered Index) 聚集索引确定表中数据的物理顺序,索引存储值的顺序和数据物理顺序一致;建立索引时,系统将对表的物理数据页中的数据按列排序,然后再重新存储到磁盘上,即聚集索引与数据是混为一体的,它的叶节点中存储是实际数据; 我们把正文本身就是一种按照一定规则排列的索引称为”聚集索引“。 一个表只能建立一个聚集索引,因为数据只能按照一种方法进行排序 2)非聚集索引(Nonclustered Index) 非聚集索引中的数据排列顺序和表中数据排列顺序不同; 查询速度慢,维护代价小; 3)惟一索引(Unique Index) 指索引值必须是惟一的; 建立了主键,SQL会自动默认建立一个惟一索引; 惟一索引和非惟一索引即可以是聚集索引,也可以是非聚集索引; 3、建立索引 (P89) 建立不能被SQL Server所采用的索引只会增加系统的负担,降低检索的速度; 若用索引查询的速度不如扫描法速度快,系统仍会采用表扫描法进行检索; SQL Server只选用那些能加快数据的查询速度的索引,可利用性是建立索引的首要条件 ; 使用T-SQL命令创建索引语法格式: CREATE [UNIQUE] [ clustered | nonclustered] ] INDEX index_name ON [[database.]ower.] {table_name|view_name} (column1 [asc | desc] [, column2 …]) UNIQUE:索引关键字字段上不允许有相同内容的记录; 备注: 系统会在增加主键时自动创建一个聚集索引,除非你给它指定一个非聚集索引。当删除PRIMARY KEY约束或UNIQUE约束时,这些列上创建的聚集索引也会被自动删除; 每张表只能存在一个聚集索引 ; 若在表中存在重复值的列上创
文档评论(0)