日期:2014-05-16  浏览次数:20475 次

Oracle 索引之——位图索引

当用于低基数列时,位图索引比 B 树索引更紧凑。
由于位图使用位图段级锁定,所以位图索引中的键列的更新成本较高;而在 B 树索引中,锁位于与表中单个行相对应的项上。
位图索引可用于执行位图布尔等操作。Oracle 服务器可以使用两个位图段执行逐位布尔操作并得到一个结果位图。这将允许在使用布尔谓词的查询中更有效地使用位图。
总之,B 树索引更适合索引动态表的 OLTP 环境,而位图索引更适合在大型静态表上使用复杂查询的数据仓库环境。

?

例如,表 CML_ONLINE_CASHIER中有一个EXP_STATUS字段,该字段只会出现('P','R','O','E','C')五种值,因此可以考虑在该字段上建位图索引。

CREATE BITMAP INDEX IDX_1000008_201 ON CML_ONLINE_CASHIER(EXP_STATUS) TABLESPACE CISTS_IDX_01;

?