oracle 索引类型
索引的分类
1二叉树索引或者叫B数索引(B-tree indexes),B树索引是使用最多的一种索引.在默认情况下,我们创建的索引都是B树索引.B树索引基于二叉树原理
2.二叉树聚簇索引(B-tree Cluster indexes) 主要用于聚簇
3.哈希聚簇索引(Hash Cluster indexes) 主要用于哈希(Hash)聚簇
4.反向索引(Reverse Key indexes) 反向索引也属于B树索引,它把索引值按字节反转过来.
5.位图索引(Bitmap indexes) 指通过位图对索引进行管理,位图索引适合唯一值很少的列,也就是重复值很多的列位图连接索引(Bitmap Join indexes) 用于两个表的连接
6.基于函数的索引(Function-Based indexes)如果在sql语句的where字句中经常用到函数或者表达式,则可以创建基于函数的索引.创建索引
create index idx_emp1_ename on emp1(ename);
创建唯一索引
create unique index idx_uq_emp1_empno on emp1(empno) tablespace mypl;
创建位图索引
create bitmap index idx_bm_emp1_deptno on emp1(deptno);
创建反向索引
create index idx_reverse_emp1_ename on emp1(empno);
创建函数索引
create index idx_funs_emp1_ename on emp1 (upper(ename));
重建索引更换索引所在表空间
alter index idx_reverse_emp1_ename rebuild;
alter index idx_reverse_emp1_ename rebuild tablespace mypl;
删除索引
drop index idx_reverse_emp1_ename;
查看用户有哪些索引
select INDEX_NAME,INDEX_TYPE,TABLE_OWNER,TABLE_NAME,TABLE_TYPE from user_indexes;
查看索引所在表空间
select index_name,tablespace_name from dba_indexes;
分析索引后查看索引统计信息
analyze index idx_funs_emp1_ename validate structure;
select height,(DEL_LF_ROWS_LEN/ LF_ROWS_LEN)*100,blocks,BTREE_SPACE,USED_SPACE from index_stats;
如果(DEL_LF_ROWS_LEN/ LF_ROWS_LEN)*100的值大于20 或 heighr 大于4 需要考虑重建索引
(index_stats存放索引的统计信息; DEL_LF_ROWS表示删除行数 LF_ROWS表示总行数,height 表示二叉树从根到叶块的层次)
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。