1.Bitmap index使用
DROP TABLE t;
dingjun123@ORADB》 SELECT COUNT(*),
COUNT(*) COUNT(DISTINCTOWNER)
76422 35
CREATE TABLE bitmap_test(ID NUMBER,status NUMBER);
CREATE BITMAP INDEX idx_bitmap_test ON bitmap_test(status);
INSERT INTO bitmap_test VALUES(1,0);
INSERT INTO bitmap_test VALUES(2,0);
INSERT INTO bitmap_test VALUES(3,0);
INSERT INTO bitmap_test VALUES(1,1);
INSERT INTO bitmap_test VALUES(2,1);
INSERT INTO bitmap_test VALUES(3,1);
COMMIT;
按照紅色數(shù)字標(biāo)識(shí)執(zhí)行順序:
SESSION1:
SESSION2:
出現(xiàn)enq: TX - row lock contention等待。
1)Bitmap index上如果DML操作,按照位圖索引塊級(jí)別加鎖,鎖定的行多,容易造成阻塞或死鎖。
2)因此,雖然Bitmap index在一些統(tǒng)計(jì)運(yùn)算、提升低選擇性列運(yùn)算性能上有優(yōu)勢(shì),Bitmap index在OLTP中則是堅(jiān)決杜絕使用的。只有在OLAP環(huán)境下,數(shù)據(jù)加載完畢后,基本處于只讀狀態(tài),主要進(jìn)行統(tǒng)計(jì)分析,才比較適合。
這個(gè)例子,在B*tree中則不會(huì)出現(xiàn)阻塞或死鎖情況。
編輯:hfy
-
死鎖
+關(guān)注
關(guān)注
0文章
25瀏覽量
8077 -
OLAP
+關(guān)注
關(guān)注
0文章
24瀏覽量
10105
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論