`

oracle 索引详解

阅读更多

Oracle的索引
    索引和对应的表应该位于不同的表空间中,oracle能够并行读取位于不同硬盘上的数据,可以避免产生I/O冲突
B树索引:在B树的叶节点中存储索引字段的值与ROWID。
唯一索引和不唯一索引都只是针对B树索引而言.
Oracle最多允许包含32个字段的复合索引

索引创建策略
1.导入数据后再创建索引
2.不需要为很小的表创建索引
3.对于取值范围很小的字段(比如性别字段)应当建立位图索引
4.限制表中的索引的数目
5.为索引设置合适的PCTFREE值
6.存储索引的表空间最好单独设定

创建不唯一索引
create index emp_ename on employees(ename)
tablespace users
storage(......)
pctfree 0;

创建唯一索引
create unique index emp_email on employees(email)
tablespace users;

创建位图索引
create bitmap index emp_sex on employees(sex)
tablespace users;

创建反序索引
create unique index order_reinx on orders(order_num,order_date)
tablespace users
reverse;

创建函数索引(函数索引即可以是普通的B树索引,也可以是位图索引)
create index emp_substr_empno
on employees(substr(empno,1,2))
tablespace users;

修改索引存储参数(与表类似,INITIAL和MINEXTENTS参数在索引建立以后不能再改变)
alter index emp_ename storage(pctincrease 50);

由于定义约束时由oracle自动建立的索引通常是不知道名称的,对这类索引的修改经常是利用alter table ..using index语句进行的,而不是alter index语句

利用下面的语句将employees表中primary key约束对应的索引的PCTFREE参数修改为5
alter table employees enable primary key using index pctfree 5;

清理索引碎片
1.合并索引(只是简单的将B树叶结点中的存储碎片合并在一起,并不会改变索引的物理组织结构)
alter index emp_pk coalesce;

2.重建索引(不仅能够消除存储碎片,还可以改变索引的全部存储参数设置,并且可以将索引移动到其它的表空间中,重建索引
实际上就是再指定的表空间中重新建立一个新的索引,然后删除原来的索引)
alter index emp_pk rebuild;

删除索引
drop index emp_ename;

如果索引中包含损坏的数据块,或者包含过多的存储碎片,需要首先删除这个索引,然后再重建它.
如果索引是在创建约束时由oracle自动产生的,可以通过禁用约束或删除约束的方法来删除对应的索引.
在删除一个表时,oracle会自动删除所有与该表相关的索引.

索引数据字典
all_indexes/dba_indexes/user_indexes 索引的基本信息
all_ind_columns/dba_ind_columns/user_ind_columns 索引对应的字段信息

分享到:
评论

相关推荐

    ORACLE索引详解及SQL优化

    ORACLE索引详解及SQL优化,详细描述了几种常用索引原理以及创建方法,解读索引生效条件,以及在开发中常用的提高数据库效率、降低数据库资源消耗的方法。

    Oracle索引详解

    Oracle索引详解,索引的初步学习,从无到有。全文分为:索引的概念,创建、删除、修改索引。

    Oracle 索引 详解

    Oracle索引详解,平时的一些经验积累,和大家分享,希望对大家有帮助

    培训教程之Oracle索引详解PPT教案学习.pptx

    培训教程之Oracle索引详解PPT教案学习.pptx

    oracle索引详解

    oracle数据库中如何建立索引,建立索引有什么优势,索引该如何使用

    Oracle索引详解[PPT]

    长达90页的对数据库索引技术的介绍和分析,并有具体实例,是大家对索引技术学习的好资料,推荐。

    Oracle中的索引详解_不要分

    Oracle中的索引详解_不要分

    Oracle索引优化相关

    Oracle数据库经典优化之索引原理篇 Oracle中建立索引并强制优化器 基于索引的SQL语句优化之降龙十八掌 30个Oracle语句优化规则详解-性能调优

    oracle的索引和约束详解

    oracle的索引和约束详解,可以针对索引和约束有更详尽的了解

    jf_Oracle_经典笔记.docx

    十九、 Oracle索引 详解 118 1. 索引简介 118 2. 索引的建立、修改、删除 125 3. 索引有单列索引、复合索引 127 4. 索引分类 128 5. 新索引类型 137 6. 查看索引类别以及查看索引字段被引用的字段方法 141 二...

    oracle索引

    详解oracle索引的作用及创建索引,索引的技巧及索引在开发中能解决的问题

    深入oracle分区索引的详解

    表可以按range、hash、list分区,表分区后,其上的索引和普通表上的索引有所不同,oracle对于分区表上的索引分为2类,即局部索引和全局索引,下面分别对这2种索引的特点和局限性做个总结。局部索引local index1.局部...

    Oracle 分区表 分区索引 索引分区详解

    虽然存储介质和数据处理技术的发展也很快,但是仍然不能满足用户的需求,为了使用户的大量的数据在读写操作和查询中速度更快,Oracle提供了对表和索引进行分区的技术,以改善大型应用系统的性能。

    深入学习分区表及分区索引(详解oracle分区).docx

    深入学习分区表及分区索引(详解oracle分区).docx

    Oracle执行计划详解

    Oracle执行计划详解,包括oracle执行顺序和索引详细介绍

    ORACLE的索引和约束详解.pdf

    ORACLE的索引和约束详解.pdf

    oracle学习详解 笔记

    oracle学习详解 笔记 建表,建库,权限,存储,索引,分页,+java分页——java存储

Global site tag (gtag.js) - Google Analytics