《Oracle大型数据库基础开发教程》(微课视频版)课件 第6章 索引与视图.pptx

《Oracle大型数据库基础开发教程》(微课视频版)课件 第6章 索引与视图.pptx

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

第6章索引与视图

6.1索引一、索引概述1.索引的概念索引是将每一条记录在某个(或某些)属性上的取值与该记录的(在数据文件中)物理地址直接联系起来。一种根据记录属性值快速访问文件记录的机制。2.建立索引的优缺点为表创建索引有许多优点,如创建唯一索引后可以保证每行数据的唯一性;可以加速检索数据的速度;多表查询时,可以加速表之间的连接;明显减少分组和排序的时间等。建立索引也有缺点,如索引需占据存储空间。例如,创建一个聚集索引大约需要1.2倍于数据大小的空间;创建索引和维护索引需要一定的时间;数据更新时索引也需要更新,降低了系统效率。

6.1索引3.建立索引的原则对于经常需要进行查询、连接、统计操作,且数据量大的基本表可考虑建立索引。例如,在主键字段或经常出现在WHERE子句或连接条件中的建立建立索引;取值范围较大的字段;NULL值比较多的字段;经常需要排序的字段。而对于经常执行插入、删除、更新操作或小数据量的基本表应尽量避免建立索引。二、Oracle索引分类1.按逻辑设计分类(1)单字段简单索引与多字段复合索引单字段简单索引是被索引字段是一个字段的索引。多字段复合索引是被索引字段是多个字段的索引。

6.1索引(2)唯一索引与非唯一索引唯一索引是被索引字段不能存在重复值,也就是字段中不会有两行相同的索引键值。非唯一索引是被索引字段可以存在重复值。(3)分区索引是指索引可以分散在多个不同的表空间中。可以提高数据的查询效率。(4)正向索引与反向索引正向索引是创建索引时不必指定对其排序而使用默认的顺序。反向索引是索引同样保持索引字段按顺序排列,但是颠倒已索引的每个字段的字节。适用于Oracle实时应用集群。(5)基于表达式的索引指索引中的一个字段或者多个字段是一个函数或者表达式,索引根据函数或者表达式计算索引列的值。

6.1索引2.按物理实现分类(1)B*树索引B*索引的存储结构类似于书的索引结构,有“分支”和“页”两种类型的存储数据块,分支块相当于书的大目录,叶块相当于索引到的具体的书页,这种方式可以保证用最短路径访问数据。常见的惟一索引与非惟一索引、单字段简单索引与多字段复合索引均属于此类。(2)反向键索引反向键索引通过简单的反向被索引的字段中的数据来解决问题,首先反向每个字段键值的字节,然后在反向后的新数据上进行索引,而新数据在值的范围上的分布通常比原来的有序数更均匀。因此,反向键索引通常建立在一些值连续增长的字段上。

6.1索引(3)位图索引位图索引主要针对大量相同值的字段而创建的,位图索引适用于具有很少字段值的列(也叫低基数列)。位图索引存储主要用于节省空间,减少Oracle对数据块的访问,它为索引字段的每个取值建立一个位图。在这个位图中,为表中每一行使用一个位元(bit,取值为1或0)来表示该行是否包含该位图的索引列的值。三、索引管理1.创建索引创建索引的一般语法格式如下所示:CREATE[UNIQUE|BITMAP]INDEX[schema.]index_nameON[schema.]table_name(column_name[ASC|DESC],…n)

6.1索引UNIQUE代表创建唯一索引,不指明为创建非唯一索引。BITMAP代表创建位图索引,如果不指明该参数,则创建B*树索引。字段名是创建索引的关键字段,可以是一个字段或多个字段。默认升序:ASC,降序:DESC例6.1在EMP表上的ENAME字段上创建索引ENAME_INDEX。CREATEINDEXENAME_INDEXONEMP(ENAMEDESC);例6.2在EMP表的JOB和MGR字段上创建复合索引JOBMGR_INDEX。CREATEINDEXJOBMGR_INDEXONEMP(JOB,MGR);

6.1索引2.查看索引Oracle数据库中,索引信息存放在数据字典中,如DBA_INDEXES、USER_INDEXES、USER_IND_COLUMNS等,分别描述有关索引信息和创建索引的列信息。使用SELECT命令和DESC均可查看索引的信息。例:查看EMP表的索引是否已经创建。SELECTindex_nameFROMUSER_INDEXESWHERETABLE_NAME=EMP;或:DESCDBA_INDEXES;例:查看EMP表的索引信息。SELECTindex_name,table_name,uniqueness,statusFROMUSER_INDEXESWHERETABLE_NAME=EMP;

6.1索引3.删除索引删除索引的语法是:DDROPINDEX索引名;索引的删除对表没有影响。例:删除EMP表的索引ENAME_INDEX。DROPINDE

文档评论(0)

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

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

1亿VIP精品文档

相关文档