想要天天向上,就要懂得享受学习。图老师为大家推荐Oracle 9i索引,精彩的内容需要你们用心的阅读。还在等什么快点来看看吧!
【 tulaoshi.com - 编程语言 】
索引是若干数据行的关键字的列表,查询数据时,通过索引中的关键字可以快速定位到要访问的记录所在的数据块,从而大大减少读取数据块的I/O次数,因此可以显著提高性能。
索引的原理
下面通过查询数据表scott.student的ROWID列为例,在中执行下面的语句,查询结果如图7.38所示。
―――――――――――――――――――――――――――――――――――――
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)select rowid,student_id,name,professional,birthday,director_id from scott.student;
―――――――――――――――――――――――――――――――――――――
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/):第7章 selectrowid.sql。
以数据表scott.student的索引为例,下面的数据就是以student_id数据列为例建立索引后的部分数据。
―――――――――――――――――――――――――――――――――――――
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)ROWID STUDENT_ID
------------------ ----------
AAAH2oAAIAAAABSAAA 20020101
AAAH2oAAIAAAABSAAJ 20020102
AAAH2oAAIAAAABSAAK 20020103
AAAH2oAAIAAAABSAAL 20020104
AAAH2oAAIAAAABSAAN 20030102
AAAH2oAAIAAAABSAAO 20030103
AAAH2oAAIAAAABSAAP 20030104
―――――――――――――――――――――――――――――――――――――
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)Oracle 9i支持的索引
Oracle 9i中的索引可以分为两大类:B-树索引和位图索引。
表7.9 B-树索引的分类 名称含义Non-Unique非惟一索引,默认的B-树索引,索引列值可以不是惟一的Unique惟一索引,在创建索引时指定UNIQUE关键字可以创建惟一索引。当建立主码约束条件时也会建立惟一索引,索引列值是惟一的Reverse Key反向关键字索引,通过在创建索引时指定REVERSE关键字,可以创建反向关键字索引,被索引的每个数据列中的数据都是反向存储的,但仍然保持原来数据列的次序Function-based基于函数的索引,对数据列使用表达式,按照表达式结果来创建B-树索引的各节点,适合特定的,经常使用该表达式进行类似查询的数据表的索引的组织
2. 位图索引
对scott.student数据表的数据列professional建立位图索可能的实例如下。
―――――――――――――――――――――――――――――――――――――
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)记录号 professional取值 位图索引值
1 软件工程 1
2 计算机安全 2
3 图形图像 3
7 Web安全 2
―――――――――――――――――――――――――――――――――――――
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)主码自动建立的索引
(1)如图7.40所示。
(2)出现如图7.41所示的编辑索引的选项卡。
如何创建索引
(1)如图7.42所示。
(2)出现如图7.43所示的创建索引的选项卡。
(3)切换到图7.44所示的创建索引的选项卡。
(4)切换到图7.45所示的创建索引的选项卡。
(5)切换到图7.46所示的创建索引的选项卡。
(6)成功创建索引后出现如图7.47所示界面。
(7)在中可以查看创建的索引,如图7.48所示。
(8)上述创建索引对应的SQL代码如下。
―――――――――――――――――――――――――――――――――――――
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)CREATE INDEX "SCOTT"."姓名字段索引"
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)ON "SCOTT"."STUDENT"("NAME")
TABLESPACE "INDX";
―――――――――――――――――――――――――――――――――――――
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/):第7章 createindex.sql。
(9)读者也可以直接在中执行createindex.sql文件完成索引的创建,如图7.49所示。
如何删除索引
(1)如图7.50所示。
(2)出现如图7.51所示的界面。
来源:http://www.tulaoshi.com/n/20160219/1615488.html