Oracle 9i索引

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

索引的原理

    下面通过查询数据表“scott.student”的ROWID列为例,在【SQLPlus Worksheet】中执行下面的语句,查询结果如图7.38所示。
    ―――――――――――――――――――――――――――――――――――――
    select rowid,student_id,name,professional,birthday,director_id from scott.student;
    ―――――――――――――――――――――――――――――――――――――
    【参见光盘文件】:\第7章\ selectrowid.sql。

    以数据表“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-树索引和位图索引。

表7.9 B-树索引的分类

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

    2. 位图索引
    对“scott.student”数据表的数据列“professional”建立位图索可能的实例如下。
    ―――――――――――――――――――――――――――――――――――――
    记录号 professional取值 位图饕?br>     1      软件工程         1
    2      计算机安全       2
    3      图形图像         3
    7      Web安全          2
    ―――――――――――――――――――――――――――――――――――――

主码自动建立的索引

    (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代码如下。
    ―――――――――――――――――――――――――――――――――――――
    CREATE INDEX "SCOTT"."姓名字段索引"
        ON "SCOTT"."STUDENT"("NAME")
        TABLESPACE "INDX";
    ―――――――――――――――――――――――――――――――――――――
    【参见光盘文件】:\第7章\ createindex.sql。
    (9)读者也可以直接在【SQLPlus Worksheet】中执行createindex.sql文件完成索引的创建,如图7.49所示。

如何删除索引

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

时间: 2024-11-29 14:47:25

Oracle 9i索引的相关文章

Oracle 9i轻松取得建表和索引的DDL语句_oracle

正在看的ORACLE教程是:Oracle 9i轻松取得建表和索引的DDL语句.我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事.我们通常的做法都是通过export with rows=no来得到,但它的输出因为格式的问题并不能直接拿来用.而另一种方法就是写复杂的脚本来查询数据字典,但这对于一稍微复杂的对象,如IOT和嵌套表等,还是无法查到. 从数据字典中获得DDL语句是经常要用的,特别是在系统升级/重建的时候.在Oracle 9i中,我们可以直接通过执行dbms_metadata从

Oracle 9i数据库服务器的体系结构

2.4.1 进程结构    Oracle 9i网络环境里共有两大类进程.    1. 用户进程    用户进程是在客户机内存上运行的程序,如客户机上运行的[SQL Plus].[企业管理器]等.用户进程向服务器进程提出操作请求.    2. 服务器进程    主要的服务器进程如表2.5所示.表2.5 Oracle 9i的主要后台支持进程 名称 主要作用 系统监控进程(SMON) 数据库系统启动时执行恢复性工作,对有故障数据库进行恢复 进程监控进程(PMON) 用于恢复失败的用户进程 数据库写入进

Oracle 9i的数据表类型

表7.5 Oracle 9i的数据表类型 方式 特点 关系表 默认的表类型,存储永久性的数据,可以被分区,这样可以改善表的性能并易于管理 临时表 存储私有数据或一个会话中特定的数据,数据库中的其他用户不能使用这些数据 索引表 按照结构化主关键字进行排序的方式存储数据,和关系表不同的是不能把表和主关键字分开存储 外部表 数据存储在Oracle数据库外部的文件中,只能读,因此任何索引都不能存储在外部表中 对象表 支持面向对象的数据表

Oracle 9i的方案对象

数据方案对象表7.1 Oracle 9i的数据方案对象 名称 含义 数据表 表是用于存放用户数据的数据库对象.数据库中的表按照功能的不同可以分为系统表和用户表两类.系统表用于存储管理用户数据和数据库本身的数据,又称数据字典表:用户表用于存放用户的数据信息,默认建立的数据表就是用户表 索引 索引就犹如一本书的目录,利用它可以快速找到所需要的内容.索引总是和数据表紧密相关联的 视图 视图是查看数据表中数据的一种方法,使用视图的主要目的就是确保数据表的安全性和隐蔽数据的复杂性.视图不是数据表,仅仅是一

详细介绍 Oracle 9i 的各个技术特征

在介绍 Oracle9i 之前我们先介绍一些关于 Oracle 公司的资料,让各位朋友更多了解 Oracle. 1977 年,拉里·艾里森和Bob Miner.Ed Oates一起创建一家软件开发实验室(Software Development Laboratories).开发当时新型的数据库技术--关系型数据库系统,并将第一个产品命名为"Oracle",意为"智慧之源".1978年软件开发实验室更名为关系型软件公司(Relational Software Inc.

全新感受Oracle 9i

Oracle背景资料 在介绍Oracle 9i之前我们先介绍一些关于Oracle公司的资料,让各位朋友更多了解Oracle. 1977 年,拉里·艾里森和Bob Miner.Ed Oates一起创建一家软件开发实验室(Software Development Laboratories).开发当时新型的数据库技术--关系型数据库系统,并将第一个产品命名为"Oracle",意为"智慧之源".1978年软件开发实验室更名为关系型软件公司(Relational Softwa

ORACLE关于索引是否需要定期重建争论的整理

     ORACLE数据库中的索引到底要不要定期重建呢? 如果不需要定期重建,那么理由是什么? 如果需要定期重建,那么理由又是什么?另外,如果需要定期重建,那么满足那些条件的索引才需要重建呢?关于这个问题,网上也有很多争论,也一直让我有点困惑,因为总有点不得庐山真面目的感觉,直到上周看到了一些资料,遂整理于此,方便以后翻阅:   首先来看看网上关于索引需要重建的准则或标准:    一:分析(analyze)指定索引之后,查询index_stats的height字段的值,如果这个值>=4 ,最好

Oracle 9i产品文档_oracle

正在看的ORACLE教程是:Oracle 9i产品文档.一.增强的可扩展性 Oracle9i Real Application Clusters是Oracle的下一代并行服务器系列产品.Oracle9i Real Application Clusters针对访问相同数据而设计了快捷高效的共享集群高速缓冲寄存器,从而提供了透明的应用程序可扩展性.Oracle9i Real Application Clusters是五年多研发工作的结晶,其中包含了9项独家专利和18项已申报的专利请求.  Oracl

JSP 连接 Oracle 9i

js|oracle 近日因项目原因,需要将手头的 系统转变为另一环境系统.即要将 Resin + Ms SQL 开发的JSP程序转为Weblogic + Oracle 下的JSP程序.Oracle我是六年前玩过它了,老早忘记怎么使用了.从合作项目公司拿来正版安装盘安装好后,忽然不知道如何用JSP连接Oracle了.打开搜索引擎狂搜,结果显然都是JDBC,Thin之类的代码. 懒人嘛,拿来测试测试.肯定是不行的了.郁闷好一个星期了,今天在搜索的时候,无意中发现跟我一样的菜鸟贴,按贴子指示,测试成功