程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle索引類型

oracle索引類型

編輯: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 表示二叉樹從根到葉塊的層次)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved