標籤:反向 佔用 對象 需要 函數 編號 維護 RoCE 時間
索引是oracle提供的一個對象,提供了一種快速存取資料的途徑,提高了資料庫的檢索效能。索引使資料庫程式無需對整個表進行全表掃描,就可以在其中找到所需要的資料,就想書的目錄,可以通過他快速尋找所需資訊,無需閱讀整本書。
oracle的資料庫管理系統在訪問資料時使用以下3種存取方法;
1.全表掃描
2.通過ROWID
3.使用索引
索引的分類:
1,B樹索引結構
索引的頂部為根,其中包含指向下一級索引的項。下一級為分支塊,分支塊又指向索引中下一級的塊,最低一級的塊稱為分葉節點,其中包含指向表資料行的索引項目。分葉節點為雙向串連,有助於按關鍵字值得升序和降序掃描索引。
建立普通索引
建立普通索引的文法
create [unique] index 索引名稱 on 表名(列名)[tablespace資料表空間名稱]
[unique]用於指定唯一索引,預設情況下為非唯一索引
[tablespace]為索引指定資料表空間
練習環境
在僱員EMP表中,在僱員名稱列建立B樹索引,oracle建立的普通索引如果沒有說
明類型就是B樹索引
查看剛剛創將的索引 EMP_NAME_IDX
建立唯一索引和非唯一索引
唯一索引:保證定義索引的列中沒有任何重複值,唯一索引的索引關鍵字只能指向表中的一行。
非唯一索引:定義索引的列中可以有重複值
在薪水層級salgrade表中,為層級編號(grade)列建立唯一索引
反向鍵索引
與常規B樹索引相反,反向鍵索引在保持順序的同時,反轉索引列的位元組。反向鍵索引通過反轉索引鍵的資料值,使得索引的修改平均分布到整個索引樹上,主要應用多個執行個體可同時訪問同一個資料庫的情境中。使用反向鍵索引將索引插入操作分散在多個索引塊鍵,如果使用B數索引的情況下,由於索引關鍵字在索引樹中的位置相近而處於同一個索引塊中,多個執行個體同時更新時會發生衝突,從而導致I/O訪問上的瓶頸。
文法如下:
CREATE index 索引名稱 on 表名(列名)REVERSE;
位元影像索引
位元影像索引適用於低基數的列,即該列的值是有限的幾個,例如僱員表中的工種(job)列,即便是幾百萬條僱員記錄,工種也是有限的。JOB列可以作為位元影像索引
位元影像索引的優點:
相對B樹索引而言,基於位元影像索引列的查詢可以減少回應時間
相比其他索引技術,位元影像索引佔用空間有所減少
位元影像索引不應當在頻繁發生INSERT,update,delete操作的表上使用,這是因為單個位元影像索引項目指向表的很多資料行,當修改索引項目時需要將其指向的資料行全部鎖定,這會嚴重降低資料庫的並發處理能力。位元影像索引適用於資料倉儲和決策支援系統中.
在僱員表(emp)表中,為工種(job)列建立位元影像索引
在僱員表(emp)中,為僱員名稱(ename)列建立大寫函數索引
基於函數的索引
查看索引列相關的資訊:索引名,表名,索引列
維護索引
重建索引:
索引需要維護,如果建立了索引的表中有大量的刪除和插入操作,會使得索引很大,因為刪除操作後,刪除值得索引空間不能被自動重新使用。對於大表和DML操作頻繁的表,索引的維護是很重要的。ORACLE提供了REBUILD指令來重建索引,使索引空間可以重用刪除值所佔用的空間,使索引更加進奏。
在重建索引時,也可以修改索引的資料表空間
合并索引片段
合并索引片段可以釋放部分磁碟空間,是索引維護的一種重要方式,也是維護磁碟空間的方式
刪除索引
DROP INDEX語句刪除索引
刪除僱員表中的INDEX_BIT_JOB位元影像索引
如果對此有興趣,請掃下面二維碼免費擷取更多詳情
Oracle 11g R2 索引