欢迎来到天天文库
浏览记录
ID:50298736
大小:258.50 KB
页数:25页
时间:2020-03-07
《Oracle 11g数据库管理与开发基础教程 教学课件 作者 袁鹏飞 第10章.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Oracle11g数据库管理与开发基础教程授课教师:职务:第10章索引课程描述索引是关系数据库中的一种基本对象,它是表中数据与相应存储位置的列表。利用索引可以加快数据的检索速度,并实现对完整性的检查。本章介绍OracleDatabase11g中索引的基本概念、创建、维护等内容。。本章知识点索引的类型索引的创建索引的修改和删除索引的监视10.1概述索引是关系数据库中的一种基本对象,它是表中数据与相应存储位置的列表。利用索引可以加快数据的检索速度,并实现对完整性的检查。如果索引数量太多,则会影响更新的速度,因为此时要花费更多的时间来更新索引。索引的创建要遵循以下原则:依据表的大小创建
2、索引。依据表和列的特征创建索引。限制表中索引的数量。要合理安排复合索引中列的顺序,将频繁使用的列放在其他列的前面。10.2创建索引使用CREATEINDEX语句创建索引,其基本语法格式为:CREATE[UNIQUE
3、BITMAP]INDEX[schema.]index_nameON[schema.]table_name(column1[ASC
4、DESC][,column2[ASC
5、DESC]]...)[TABLESPACEtable_space
6、DEFAULT][SORT
7、NOSORT][REVERSE][VISIBLE
8、INVISIBLE][PARALLEL[n]
9、NOPARA
10、LLEL];参数说明:UNIQUE、BITMAP:分别指出创建的索引为惟一索引和位图索引,如果未指定这两个选项,创建的则是B-树索引;schema:指出所建索引属于哪个模式,缺省为当前用户;index_name:创建的索引名;column1:指出基表中索引列的列名,一个索引最多可基于16列,long列、longraw列不能建索引;ASC、DESC:指出索引值的排列顺序是升序还是降序,缺省为ASC即升序;ONLINE:指出在创建索引期间允许对表进行DML操作;TABLESPACE:指定索储索引的表空间;SORT、NOSORT:默认时,OracleDatabase在创建索引时将按升序
11、排序索引。如果确认数据库内的数据行已经按升序排序,则可以指定NOSORT,要求在创建索引时不再排序数据行。但此时,如果索引列未按升序排序,则将导致索引创建失败;REVERSE:表示建立反向键值索引;VISIBLE、INVISIBLE:指定索引对优化器是否可见。10.2.1B-树索引B-树索引是Oracle数据库中最常用的一种索引结构,它按照平衡树算法来构造索引,这种索引中的叶子结点保存索引键值和一个指向索引行的ROWID信息。默认情况下,Oracle数据库中创建的索引就是B-树索引。例如,在books表的bookname列上创建一个非惟一B-索引:BOOKS_PUB@orcl_d
12、bs>CREATEINDEXbook_name_idxON2books(bookname)3TABLESPACEUSERS;索引已创建。Oracle数据库会自动在表的主键约束列和惟一性约束列上创建惟一索引,用户也可以自己进行创建惟一索引。例如,下面代码在books表的booknum列上创建一个惟一索引:BOOKS_PUB@orcl_dbs>CREATEUNIQUEINDEXbooknum_idxON2books(booknum);索引已创建。10.2.2位图索引位图索引不存储ROWID值,也不存储键值,它用一个索引键条目存储指向多行的指针,即每个索引条目指向多行。位图索引占用空间
13、小,适合索引值基数少,高度重复而且只读的应用环境使用,所以适合于数据仓库等环境。例如,在orders表的payterms列上创建一个位图索引:BOOKS_PUB@orcl_dbs>CREATEBITMAPINDEXorder_pay_idx2ONorders(payterms);索引已创建。10.2.3基于函数的索引基于函数的索引是在B-树索引或位图索引的基础上,将一个函数计算得到的结果作为索引值而创建的索引。因此,可以把基于函数的索引看做一个虚拟列上的索引。例如,在authors表的author_lname列创建一个基于函数的索引,以便在该列上执行大小写无关的查询:BOOKS_
14、PUB@orcl_dbs>CREATEINDEXauthor_lname_idx2ONauthors(UPPER(author_lname));索引已创建。10.2.4反向键值索引反向键值索引通过反向键值保持在索引所有叶子节点上的插入分布。利用反向键值索引可以避免不平衡的索引,使索引条目在索引中分布的更均匀。通过CREATEINDEX命令直接创建反向键值索引,或在ALTERINDEX命令后加REBUILDNOREVERSE或REBUILDREVERSE子句把索引修改为普通索引或反
此文档下载收益归作者所有