oracle的位元影像索引____oracle

來源:互聯網
上載者:User

1,Oracle資料庫的位元影像索引(Bitmap Index)確實是針對那些數值稀疏(low-cardinality,低基數)的欄位,但是還應記住的一點是,它是針對那些值不經常改變的欄位的。在實際應用中,如果某個欄位的值需要頻繁更新,那麼就不適合在它上面建立位元影像索引。在位元影像索引中,如果你更新或插入其中一條數值為N的記錄,那麼相應表中數值為N的記錄(可能成百上千條)全部被Oracle鎖定,這就意味著其它使用者不能同時更新這些數值為N的記錄,其它使用者必須要等第一個使用者提交後,才能獲得鎖,更新或插入資料。
http://blog.ccidnet.com/blog-htm-do-showone-uid-4092-itemid-291252-type-blog.html

在我們的系統裡,不僅不是在一個column上建立bitmap index,而是在多個column上聯合起來建立bitmap index,從而可以想見,幾乎等同於每個bitmap index entry對應的只有極少數的rowid,即只對應極少數的row,而且每個bitmap都要建立一個或多個bitmap segment,相應的,DML操作可能需要頻繁的lock很多rows,影響並發性(影響也需要修改同樣bitmap entry的使用者),同時,由於pctfree等儲存參數影響index空間的分配及管理,和由於資料操作導致物理地址更改從而修改index entry,擴充,連結bitmap index entry,頻繁修改導致的磁碟片段,block分配連結等。這是空間增長和系統效能下降的部分原因。

bitmap主要用於資料倉儲,table有大量的資料並且列上基數很小(一般是column的distinct values佔rows總數的1%以下,或重複出現超過100次以上,Oracle建議此時才可以把該column列為建立bitmap index的侯選欄位),同時,還由於資料倉儲上並行訪問的事務非常少。bitmap index並不適用於OLTP業務,OLTP一般都是有大量的並發事務來修改同樣的資料。bitmap主要就是設計來為資料倉儲服務的,即應用於低基數超 級大資料量查詢服務,而且只用在where clause裡包含and ,or,not,或equality queries(比如在and和or條件的查詢,在把bit轉換成rowid以前,就能很快的得到相應的boolean操作)。
http://bigboar.itpub.net/post/8411/225321

2,位元影像索引佔用的空間很大.一個466萬行記錄的只有兩個欄位的表,佔用空間約 88M,在該兩個欄位上建有一個位元影像索引,這個位元影像索引佔用空間約168M
http://bigboar.itpub.net/post/8411/225321

查看各個表(包括索引)佔用空間大小的sql:
Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name

http://space.itpub.net/193161/viewspace-50292
http://www.ixdba.com/html/y2007/m05/102-bitmap-index-deadlock.html

3,Oracle強烈建立,任何一個應用程式的庫表至少需要建立兩個資料表空間,其中之一用於儲存表資料,而另一個用於儲存表索引資料。因為如果將表資料和索引數 據放在一起,表資料的I/O操作和索引的I/O操作將產生影響系統效能的I/O競爭,降低系統的響應效率。將表資料和索引資料存放在不同的資料表空間中(如一 個為APP_DATA,另一個為APP_IDX),並在物理層面將這兩個資料表空間的資料檔案放在不同的物理磁碟上,就可以避免這種競爭了。
擁有獨立的資料表空間,就意味著可以獨立地為表資料和索引資料提供獨立的實體儲存體參數,而不會發生相互影響,畢竟表資料和索引資料擁有不同的特性,而這些特性又直接影響了實體儲存體參數的設定。
此外,表資料和索引資料隔離儲存區 (Isolated Storage),還會帶來資料管理和維護上的方面。如你在遷移一個業務資料庫時,為了降低資料大小,可以只遷出表資料的資料表空間,在目標資料庫中通過重建索引的方式就可以產生索引資料了。
http://blog.ccidnet.com/blog-htm-do-showone-uid-19759-itemid-341747-type-blog.html

4,B-Tree索引即normal普通索引

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.