首页 > 数据库 > Oracle > 正文

Oracle 9i索引

2024-08-29 13:32:10
字体:
来源:转载
供稿:网友
  • 本文来源于网页设计爱好者web开发社区http://www.html.org.cn收集整理,欢迎访问。
  •   索引是若干数据行的关键字的列表,查询数据时,通过索引中的关键字可以快速定位到要访问的记录所在的数据块,从而大大减少读取数据块的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所示的【索引删除确认】界面。

    上一篇:Oracle 9i 视图

    下一篇:Oracle 9i删除数据表

    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表