數(shù)據(jù)庫(kù)的索引把用戶感興趣的列值連同其行標(biāo)識(shí)符(ROWID)存儲(chǔ)在一起
ROWID包含了存儲(chǔ)列值的表行在磁盤上的物理位置
索引雖然能提高查詢的性能,但是也不能一度的創(chuàng)建索引,因?yàn)樗饕怯写鷥r(jià)的
消耗磁盤空間,系統(tǒng)資源,在列值被修改的同時(shí)也必須修改相應(yīng)的索引
?
Oracle默認(rèn)的索引類型是 B樹(shù) 索引,適用于高基數(shù)列,也就是列值種類多。
SELECT DBMS_ROWID.ROWID_RELATIVE_FNO ( ROWID ), F4 ? FROM DEMOT ? WHERE F1 = 5 ; |
上面的PACKAGE中的方法是將ROWID轉(zhuǎn)換成有意義的信息
通過(guò) rowid_info可以解析 ROWID內(nèi)容
Object# is :128262
Relative_fno is :7
Block number is :3644
Row number is :0
?
位圖索引,適用于低基數(shù)列,列值種類少
主要用于數(shù)據(jù)倉(cāng)庫(kù)
創(chuàng)建速度非???,占用空間非常小
/* Formatted on 5/6/2013 14:55:23 (QP5 v5.240.12305.39446) */ SELECT SEGMENT_NAME , BYTES , EXTENTS ? FROM DBA_SEGMENTS ? WHERE ???? SEGMENT_TYPE = 'INDEX' ?????? AND OWNER = 'XXRPTH' ?????? AND SEGMENT_NAME IN ( 'DEMOT_BITMAP' , 'SYS_C0032427' ); |
判斷是否適合創(chuàng)建位圖索引,該列的有效值數(shù)目不足表中行數(shù)的1%,就適合
CREATE BITMAP INDEX DEMOT_BITMAP ?? ON DEMOT ( F7 ) ?? NOLOGGING; |
位圖索引的DML操作性能很差,所以最好是刪除并重建它們,而不是維護(hù),所以不需要日志記錄
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
