![第9章管理其他对象包含原ch_第1页](http://file4.renrendoc.com/view2/M03/3B/3D/wKhkFmZ9lbmATGjwAAFzX1k2g14061.jpg)
![第9章管理其他对象包含原ch_第2页](http://file4.renrendoc.com/view2/M03/3B/3D/wKhkFmZ9lbmATGjwAAFzX1k2g140612.jpg)
![第9章管理其他对象包含原ch_第3页](http://file4.renrendoc.com/view2/M03/3B/3D/wKhkFmZ9lbmATGjwAAFzX1k2g140613.jpg)
![第9章管理其他对象包含原ch_第4页](http://file4.renrendoc.com/view2/M03/3B/3D/wKhkFmZ9lbmATGjwAAFzX1k2g140614.jpg)
![第9章管理其他对象包含原ch_第5页](http://file4.renrendoc.com/view2/M03/3B/3D/wKhkFmZ9lbmATGjwAAFzX1k2g140615.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章管理其他模式对象南京信息工程大学计算机与软件学院教学目的与要求(1)理解索引的概念、作用及其类型;(2)掌握各种索引的适用场合及其创建、修改过程;(3)掌握视图的常用操作;(4)了解外部表的概念及操作;(5)理解临时表的概念及其特点;(6)了解序列的常用操作。9.1索引9.2视图9.3外部表9.4临时表9.5序列本章主要内容教学重点与难点(1)索引的作用(2)各类型索引的特点及其适用场合(2)视图的创建及管理(3)Oracle中临时表与其他关系数据库的不同点9.1索引索引是一种可选的数据结构,在一个表上是否建立索引,这不会对表的使用方法产生任何影响。但是如果在表中的某些字段上建立了索引,这能够显著地提高对该表的查询速度。并且可以在很大程度上减少查询时的硬盘I/O操作。9.1.1索引基础如果一个表中包含有很多条记录,当对表执行查询时,必须将所有的记录一一取出,以便将每一条记录与查询条件进行比较,然后再返回满足条件的记录。这样进行操作的时间开销和I/O开销都是十分巨大的。这时就可以考虑通过建立索引来减少开销。索引与表一样,不仅需要在数据字典中保存索引的定义,还需要在表空间中为它分配实际的存储空间。创建索引时,Oracle会自动在用户的默认表空间或指定的表空间中创建一个索引段,为索引数据提供存储空间。为某个表创建的索引不必和该表保存在同一个表空间中。将索引和对应的表分别存放在不同硬盘的不同的表空间中,反而能够提高查询的速度(并行访问)。在创建索引时,Oracle首先对将要建立索引的字段(索引字段)进行排序,然后将排序后的字段值和对应记录的ROWID存储在索引段中(索引条目)。索引与键两个术语在许多地方可以互换,但两者在本质上有着明显的区别:索引时存储在数据库中的一种实体结构,可以通过SQL语句来操作;而键只是一个逻辑上的概念,在Oracle中是与完整性约束相对应的。按照所有数据的存储方式可以将索引分为B树索引、方向键索引、位图索引和基于函数的索引。按照索引列的个数又可以分为单列索引和复合索引。按照索引列的唯一性,又可以分为唯一索引和非唯一索引。9.1.2创建索引建立索引是使用CREATEINDEX语句完成的。一般情况下,建立索引是由表的所有者完成的,如果要以其他用户身份建立索引,则要求用户必须具有CREATEANYINDEX系统权限或者在相应表的INDEX对象权限。(1)B树索引
B树索引是Oracle中默认的、最常用的索引类型。B树索引是以B树结构组织并存放索引数据的。默认情况下,B树索引中的数据是以升序方式排列的。如果表包含的数据非常多,并且经常在WHERE子句中引用某列或某几个列,则应该基于该列或该几个列建立B树索引。
B树索引由根块、分支块和叶块3部分组成,其中主要数据都集中在叶子结点。(2)位图索引索引的作用简单地说就是能够通过给定的索引列值,快速地找到对应的记录。在B树索引中,通过在索引中保存排过序的索引列的值,以及记录的物理地址ROWID来实现快速查找。但是对于一些特殊的表,B树索引的效率可能会很低。
B树索引适用于重复值很少的列上,而位图索引适用于重复值很多、不同值相对固定的列上。位图索引以位图值标识索引行数据。创建位图索引时,Oracle会基于每个不同值建立一个位图。当行数据匹配位图值时,相应位置为1,否则为0。(3)反向键索引在Oracle中,系统会自动为表的主键列建立索引,这个默认的索引是普通的B树索引。通常,用户会希望表的主键是一个自动增长的序列编号,这样的列就是所谓的单调递增序列编号列。当在这种顺序递增的列上建立普通的B树索引时,如果表的数据量非常庞大,将导致索引数据分布不均。反向键索引是一种特殊类型的B树索引,在顺序递增列上建立索引时非常有用。反向键索引在存储结构上与常规的B树索引相同。然而,如果用户使用序列在标准输入新记录,则反向键索引首先反向每个列键值的字节,然后在反向后的新数据上进行索引。(4)基于函数的索引用户在使用Oracle数据库时,最常遇到问题之一就是它对字符大小写敏感。存在问题:索引不起作用,需要全表搜索。基于函数的索引是常规的B树索引,只是它存放的数据是由表中的数据应用函数后所得到的,而不是表中数据本身。9.1.3修改索引修改索引是使用ALTERINDEX命令完成的。一般情况下,修改索引是由索引的所有者完的,如果要以其他用户身份修改索引,则要求该用户必须具有ALTERANYINDEX系统权限或在相应表上的INDEX对象权限。在为表建立索引后,随着对表不断进行更新、插入和删除操作,索引中将会产生越来越多的存储碎片,这对索引的工作效率会产生负面影响。这时用户可以采取两种方式来清除碎片——合并索引或重建索引。(1)合并索引合并索引只是将B树中叶子节点的存储碎片合并在一起,并不会改变索引的物理组织结构。(2)重建索引重建索引使用ALTERINDEX…REBUILD语句。重建操作不仅可以消除存储碎片,还可以改变索引的存储参数设置及存储表空间。创建索引实际上是在指定的表空间中重新建立一个索引,然后删除原来的索引。9.1.4显示索引信息通过查询相应的数据字典视图,用户可以了解索引的各种信息。(1)显示表的所有索引DBA_INDEXES:数据库的所有索引ALL_INDEXES:当然用户可访问的所有索引USER_INDEXES:当前用户的索引信息(2)显示索引列DBA_IND_COLUMNS:数据库所有索引的表列信息ALL_IND_COLUMNS:当然用户可访问的所有索引的表列信息USER_IND_COLUMNS:当前用户索引的表列信息(3)显示索引段位置及其大小DBA_SEGMENTS:数据库所有段的详细信息USER_SEGMENTS:当前用户段的详细信息(4)显示函数索引DBA_IND_EXPRESSIONS:数据库所有函数索引所对应的函数或表达式USER_IND_EXPRESSIONS:当前用户函数索引所对应的函数或表达式9.1.5删除索引删除索引是使用DROPINDEX语句完成的。一般情况下,删除索引是由索引所有者完成的,如果以其他用户身份删除索引,则要求该用户必须具有DROPANYINDEX系统权限或在相应表上的INDEX对象权限。通常在如下情况下需要删除某个索引:该索引不再需要时,应该删除该索引,以释放其所占用的空间。如果移动了表中的数据,导致索引中包含过多的存储碎片,此时需要删除并重建索引。通过一段时间的监视,发现很少有查询会使用到该索引。索引的删除方式与索引创建采用的方式有关。如果使用CREATEINDEX语句显式创建的索引,则可以使用DROPINDEX语句删除。如果索引是定义约束时由Oracle自动创建的,则必须禁用或删除该约束。此外,删除一个表时,与该表相关的索引也会删除。用户需要根据表的实际使用情况限制在表中创建的索引数量。(维护开销、更新效率)9.2视图视图是一个虚拟表,它由存储的查询构成,可以将它的输出看作是一个表。视图同真实的表一样,也包含一系列带有名称的列和行数据。但是,视图并不在数据库中存储的数据值,其数据值是来自定义视图的查询语句所引用的表,数据库只在数据字典中存储了视图的定义信息。视图可以建立在基本表或其他视图之上。通过视图修改数据时,实际上就是修改基本表中的数据;与之相对应,改变基本表中的数据也会反映到由该表组成的视图中。9.2.1创建视图创建视图是使用CREATEVIEW语句完成的。为了在当前用户模式中创建视图,要求数据库用户必须具有CREATEVIEW系统权限;如果要在其他用户模工中创建视图,则用户必须具有CREATEANYVIEW系统权限。CREATEVIEW<视图名>[(ALIAS[,ALIAS]…)]AS子查询
[WICHCHECKOPTION[CONSTRAINT约束名]][WITHREADONLY](1)创建简单视图简单视图是指基于单个表建立的,不包含任何函数、表达式和分组数据的视图。(2)创建视图并定义CHECK约束(3)创建只读视图(4)创建复杂视图复杂视图是指包含函数、表达式或分组数据的视图,其主要目的是为了简化查询操作。需要注意的是,当视图子查询包含函数或表达式时,必须为其定义列别名。(5)创建连接视图连接视图是指基于多个表所创建的视图,其主要目的是为了简化连接查询。9.2.2管理视图在创建视图后,用户可以对视图进行管理,主要包括:查看视图的定义信息、修改视图定义、重新编译视图和删除视图。(1)查看视图定义通过查询数据字典视图USER_VIEWS,可以获得视图的定义信息。(2)修改视图定义执行CREATEORREPLACEVIEW语句。(3)重新编译视图视图创建后,如果用户修改了视图所依赖的基本表定义,则该视图会被标记为无效状态。当用户访问视图时,Oracle会自动重新编译视图。用户也可以使用ALTERVIEW语句手动编译视图。(4)删除视图当视图不再需要时,用户可以执行DROPVIEW语句删除视图。执行该语句后,视图的定义将被删除,这对视图内所有的数据没有任何影响,它们仍然存储在基本表中。9.3外部表(*)外部表是表结构被存储在数据字典中,而表数据被存放在OS文件中的表。通过使用外部表,不仅可以在数据库中查询OS文件的数据,还可以使用INSERT方式将OS文件数据装载到数据库中,从而实现SQL*Loader所提供的功能。建立外部表也是使用CREATETABLE语句来完成的,但建立外部表是必须指定ORGANIZATIONEXTERNAL子句。与建立普通表不同,建立外部表包括两部分:一部分描述列的数据类型,另一部分描述OS文件数据与表列的对应关系。9.4临时表
Oracle的临时表与其他关系数据库中的不同,Oracle中的监时表是“静态”的,也就是说,用户不需要在每次使用临时表时重新建立,它与普通的数据表一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国L-酒石酸二甲酯市场调查研究报告
- 2025至2031年中国铍铜棒行业投资前景及策略咨询研究报告
- 2025年男春秋长裤项目可行性研究报告
- 2025年清开灵项目可行性研究报告
- 2025年操作员面板项目可行性研究报告
- 2025年不锈钢软管丝项目可行性研究报告
- 2025至2030年中国除盐水设备数据监测研究报告
- 2025至2030年躺椅调架项目投资价值分析报告
- 2025至2030年中国船舶三维设计系统数据监测研究报告
- 2025至2030年中国砂套数据监测研究报告
- ECMO IABP完整版可编辑
- 【高考作文指导】用思辨来写现象类作文(共39张PPT)
- GB/T 4214.1-2017家用和类似用途电器噪声测试方法通用要求
- GB/T 11822-2000科学技术档案案卷构成的一般要求
- 压力管道基本知识课件
- 读李玫瑾教授《心理抚养》有感
- 小学英语 国际音标 练习及答案
- 优秀班主任经验交流课件-班主任经验交流课件
- HP-DL380-Gen10-服务器用户手册
- 2023年广州金融控股集团有限公司招聘笔试题库及答案解析
- YB∕T 105-2014 冶金石灰物理检验方法
评论
0/150
提交评论