教你如何成為Oracle 10g OCP - 第九章 物件管理(9) - 點陣圖(Bitmap)索引
9.2.6 點陣圖(Bitmap)索引
http://space.itpub.net/9842/viewspace-343286
點陣圖索引是另外一個索引型別,組織形式和b-tree索引相同,也是一顆平衡樹,區別
在於葉子節點裡存放索引條目的方式不同。前面知道,B數索引的葉子節點對於表裡
的每個資料行,如果索引列的值不為空,則會為這個記錄行在葉子節點中維護一個
對應的索引條目。 而點陣圖索引則不是這樣,葉子節點中存放的索引條目如下:
http://space.itpub.net/9842/viewspace-343286
點陣圖索引非常適用於DSS及資料倉儲系統,他們可以使用較少的基數(唯一鍵數目,
比如男和女,基數為2)列,訪問非常大的表,儘管點陣圖索引最多可以達到30個列,
但是一般都只用於少量的列。對於那些有較低基數的列要使用點陣圖索引。點陣圖索引
對於低基數(少量不同值)的列來說非常快,這是因為索引的大小相對於B樹索引來說
小很多,因為這些索引是低基數的B樹索引。
在表上建立索引後,點陣圖索引條目上(葉子節點中)還包含表裡第一條記錄所對應的rowid
及最後一條記錄所對應的rowid, 所以條目的最後一部分則是由多個bit位組成的bitmap,
每個bit位就對應一條記錄。 格式:
key start rowid end rowid bitmap
<01, AAAAAA , ZZZZZZ , 1000100100011001001 >
<02, AAAAAA , ZZZZZZ , 0101100100011100010 >
<03, AAAAAA , ZZZZZZ , 0000100101101001001 >
bitmap中沒有直接記錄rowid, 而是記錄了一個點陣圖, 點陣圖中的每一個bit位都對應一個rowid,
之間有轉換關係的.所以用bitmap索引的時候你可以在執行計劃裡看到 bitmap to rowid 這樣的步驟.
當我們發出where c1='01'這樣的SQL時,oracle會搜尋01所在的索引條目,然後掃描該
索引條目中的bitmap裡的所有bit位。第一個bit位是1,表示第一條上的c1的值是01,
於是返回第一條記錄所在的rowid(根據該索引條目裡記錄的start rowid加上行號得到
該記錄所在的rowid), 第二個bit位為0, 則說明第二條記錄上的c1值不為01,依此類推。
特別注意,如果索引列為空,也會在點陣圖索引中記錄,對應的bit位為0 ;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-687520/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 教你如何成為Oracle 10g OCP - 第九章 物件管理(10) - 點陣圖(Bitmap)索引Oracle 10g物件索引
- 教你如何成為Oracle 10g OCP - 第九章 物件管理(5) - 索引Oracle 10g物件索引
- 教你如何成為Oracle 10g OCP - 第九章 物件管理Oracle 10g物件
- 教你如何成為Oracle 10g OCP - 第九章 物件管理(9) - 重建索引對效能的影響Oracle 10g物件索引
- 教你如何成為Oracle 10g OCP - 第九章 物件管理(11) - 管理索引,sequence及resumableOracle 10g物件索引
- 教你如何成為Oracle 10g OCP - 第九章 物件管理(8) - 如何重建B樹索引Oracle 10g物件索引
- 教你如何成為Oracle 10g OCP - 第九章 物件管理(2)Oracle 10g物件
- 教你如何成為Oracle 10g OCP - 第九章 物件管理(3)Oracle 10g物件
- 教你如何成為Oracle 10g OCP - 第九章 物件管理(4)Oracle 10g物件
- 教你如何成為Oracle 10g OCP - 第九章 物件管理(6) - B樹索引的訪問Oracle 10g物件索引
- 教你如何成為Oracle 10g OCP - 第九章 物件管理(7) - B樹索引的對於DELETE的管理Oracle 10g物件索引delete
- oracle 點陣圖索引(bitmap index)Oracle索引Index
- 教你如何成為Oracle 10g OCP - 第十六章 ASM管理Oracle 10gASM
- 點陣圖索引(Bitmap Index)——索引共用索引Index
- 教你如何成為Oracle 10g OCP - 第六章 儲存管理Oracle 10g
- 點陣圖索引(Bitmap Index)——從B*樹索引到點陣圖索引索引Index
- 點陣圖索引:原理(BitMap index)索引Index
- 點陣圖索引(bitmap-index)索引Index
- 教你如何成為Oracle 10g OCP - 第二十章 安全Oracle 10g
- 教你如何成為Oracle 10g OCP - 第七章 undo表空間管理Oracle 10g
- 教你如何成為Oracle 10g OCP - 第十五章 自動化管理Oracle 10g
- bitmap index點陣圖索引系列(一)Index索引
- 教你如何成為Oracle 10g OCP - 第十四章 閃回Oracle 10g
- 點陣圖索引(Bitmap Index)——點陣圖索引與資料DML鎖定索引Index
- 【刪除】教你如何成為Oracle 10g OCP - 第十五章 自動化管理Oracle 10g
- 教你如何成為Oracle 10g OCP - 第一章學習Oracle 10g
- 教你如何成為Oracle 10g OCP - 第十三章 RMAN管理的備份與恢復Oracle 10g
- Oracle索引——點陣圖索引Oracle索引
- 教你如何成為Oracle 10g OCP - 第十九章 資料遷移Oracle 10g
- 教你如何成為Oracle 10g OCP - 第十二章 手工管理的備份與恢復Oracle 10g
- 教你如何成為Oracle 10g OCP - 第十一章 配置網路環境Oracle 10g
- 教你如何成為Oracle 10g OCP - 第五章 記憶體元件與Oracle程式Oracle 10g記憶體元件
- 教你如何成為Oracle 10g OCP - 第八章 使用者、許可權和角色管理Oracle 10g
- zt_深入理解bitmap index點陣圖索引Index索引
- 教你如何成為Oracle 10g OCP - 第三章 資料字典學習Oracle 10g
- Oracle-點陣圖索引Oracle索引
- 教你如何成為Oracle 10g OCP - 第十三章補充:RMAN的組成及工作原理Oracle 10g
- 教你如何成為Oracle 10g OCP - 第八章 使用者、許可權和角色管理01Oracle 10g