博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 9i索引(转)
阅读量:2497 次
发布时间:2019-05-11

本文共 2143 字,大约阅读时间需要 7 分钟。

Oracle 9i索引(转)[@more@]

  索引是若干数据行的关键字的列表,查询数据时,通过索引中的关键字可以快速定位到要访问的记录所在的数据块,从而大大减少读取数据块的I/O次数,因此可以显著提高性能。

  索引的原理

  下面通过查询数据表“scott.student”的ROWID列为例,在【SQLPlus Worksheet】中执行下面的语句,查询结果如图7.38所示。

  ?????????????????????????????????????

  select rowid,student_id,name,professional,birthday,director_id from scott.student;

  ?????????????????????????????????????

  【参见光盘文件】:第7章 selectrowid.sql。

1154692516_ddvip_6952.jpg

  以数据表“scott.student”的索引为例,下面的数据就是以“student_id”数据列为例建立索引后的部分数据。

  ?????????????????????????????????????

  ROWID STUDENT_ID

  ------------------ ----------

  AAAH2oAAIAAAABSAAA 20020101

  AAAH2oAAIAAAABSAAJ 20020102

  AAAH2oAAIAAAABSAAK 20020103

  AAAH2oAAIAAAABSAAL 20020104

  AAAH2oAAIAAAABSAAN 20030102

  AAAH2oAAIAAAABSAAO 20030103

  AAAH2oAAIAAAABSAAP 20030104

  ?????????????????????????????????????

  Oracle 9i支持的索引

  Oracle 9i中的索引可以分为两大类:B-树索引和位图索引。

1154692516_ddvip_2768.jpg

  表7.9 B-树索引的分类

名称 含义
Non-Unique 非惟一索引,默认的B-树索引,索引列值可以不是惟一的
Unique 惟一索引,在创建索引时指定“UNIQUE”关键字可以创建惟一索引。当建立“主码约束条件”时也会建立惟一索引,索引列值是惟一的
Reverse Key 反向关键字索引,通过在创建索引时指定“REVERSE”关键字,可以创建反向关键字索引,被索引的每个数据列中的数据都是反向存储的,但仍然保持原来数据列的次序
Function-based 基于函数的索引,对数据列使用表达式,按照表达式结果来创建B-树索引的各节点,适合特定的,经常使用该表达式进行类似查询的数据表的索引的组织

  2. 位图索引

  对“scott.student”数据表的数据列“professional”建立位图索可能的实例如下。

  ?????????????????????????????????????

  记录号 professional取值 位图索引值

  1    软件工程     1

  2    计算机安全    2

  3    图形图像     3

  7    Web安全      2

  ?????????????????????????????????????

  主码自动建立的索引

  (1)如图7.40所示。

1154692516_ddvip_5785.jpg

  (2)出现如图7.41所示的编辑索引的【一般信息】选项卡。

1154692516_ddvip_3579.jpg

  如何创建索引

  (1)如图7.42所示。

1154692516_ddvip_6496.jpg

  (2)出现如图7.43所示的创建索引的【一般信息】选项卡。

1154692516_ddvip_1307.jpg

  (3)切换到图7.44所示的创建索引的【分区】选项卡。

  (4)切换到图7.45所示的创建索引的【存储】选项卡。

1154692516_ddvip_2646.jpg

  (5)切换到图7.46所示的创建索引的【选项】选项卡。

  (6)成功创建索引后出现如图7.47所示界面。

1154692516_ddvip_8479.jpg

  (7)在【企业管理器】中可以查看创建的索引,如图7.48所示。

1154692516_ddvip_1575.jpg

  (8)上述创建索引对应的SQL代码如下。

  ?????????????????????????????????????

  CREATE INDEX "SCOTT"."姓名字段索引"

  ON "SCOTT"."STUDENT"("NAME")

  TABLESPACE "INDX";

  ?????????????????????????????????????

  【参见光盘文件】:第7章 createindex.sql。

  (9)读者也可以直接在【SQLPlus Worksheet】中执行createindex.sql文件完成索引的创建,如图7.49所示。

1154692516_ddvip_3554.jpg

  如何删除索引

  (1)如图7.50所示。

  (2)出现如图7.51所示的【索引删除确认】界面。

1154692516_ddvip_6352.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-954005/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10748419/viewspace-954005/

你可能感兴趣的文章
个人课程总结
查看>>
【数据挖掘】matlab书单
查看>>
ES6学习(2)——arrows箭头函数
查看>>
第三次冲刺及课程设计
查看>>
2012 Multi-University Training Contest 8
查看>>
组合 聚合 区别
查看>>
爬虫--登录网页
查看>>
在.net中使用aquiles访问Cassandra(四)
查看>>
201521123010 《Java程序设计》第13周学习总结
查看>>
0918练习题
查看>>
Qt 编程中 namespace Ui { class Widget; } 解析
查看>>
C#与C/C++的交互 转自(warensoft)
查看>>
关于宏的一些处理
查看>>
微信小程序学习笔记以及VUE比较
查看>>
课后作业2
查看>>
素 数 (第三届省赛)
查看>>
python中sys.argv的说明(读《python简明教程》的困惑解答)
查看>>
矩阵与向量求导法则
查看>>
win10无法安装 nodejs 解决方法
查看>>
【EF学习笔记11】----------查询中常用的扩展方法
查看>>