oracle索引的使用【整理】



oracle的索引分为5种:唯一索引,组合索引,反向键索引,位图索引,基于函数的索引
创建索引的标准语法:
CREATE INDEX 索引名 ON 表名 (列名)  TABLESPACE 表空间名;
 
创建唯一索引:
CREATE unique INDEX 索引名 ON 表名 (列名)  TABLESPACE 表空间名;

创建组合索引:
CREATE INDEX 索引名 ON 表名 (列名1,列名2) TABLESPACE 表空间名;

创建反向键索引:
CREATE INDEX 索引名 ON 表名 (列名) reverse TABLESPACE 表空间名;

创建基于函数的索引:
基于函数的索引就是存储预先计算好的函数或表达式值的索引。这些表达式可以是算术运算表达式、SQL或PL/SQL函数、C调用等
CREATE INDEX idx ON emp ( UPPER(ename)) TABLESPACE 表空间名;


什么时候重建呢?
察看 dba_indexes 中的 blevel 。这列是说明索引从根块到叶快的级别,或是深度。如果级别大于等于4。则需要重建,
如下 :Select index_name,blevel from dba_indexes where blevel>=4.

另一个从重建中受益的指标显然是当该索引中的被删除项占总的项数的百分比。如果在20%以上时,也应当重建,如下
SQL>analyze index index_name validate structure
SQL>select (del_lf_rows_len/lf_rows_len)*100 from index_stats where name=' index_name '


重建索引的方法
1、删除并从头开始建索引:方法是最慢的,最耗时的。一般不建议。
2、使用 alter index index_name rebuild 命令重建索引。使用现有索引项来重建新索引
3、使用 alter index index_name rebuild online; 带online参数来最大限度的减少索引重建时将会出现的任何加锁问题
4、使用 alter index index_name coalesce 命令重建索引。在重建索引时将处于同一个索引分支内的叶块拼合起来
5、使用 alter index index_name rebuild tablespace tablespace_name
   加入表空间名,可指定的索引移动到指定的表空间当中,当索引建完后可把老索引删除


oracle索引,索引的建立、修改、删除

https://www.cnblogs.com/djcsch2001/articles/1823459.html

Oracle数据库中建立索引的基本方法讲解

http://www.jb51.net/article/78660.htm

Oracle索引重建

https://www.2cto.com/database/201511/451633.html

Oracle表与索引的分析及索引重建

https://www.cnblogs.com/lanzi/archive/2010/12/31/1923270.html

oracle函数索引小结

https://www.cnblogs.com/sopost/archive/2010/01/20/2190121.html

如何创建oracle函数索引

http://blog.csdn.net/annicybc/article/details/829699

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值