一般的经验OLTP不建议使用位图索引,虽然位图索引可能会提高查询速度,但是如果修改有索引的数据,那索引指向的所有行都会被锁定,这是由于oracle不能锁定位图索引条目中单独的一行,而是锁定整个位图索引条目。
今天研发告诉我一个系统数据总是有问题,排查到某个查询的时候,我看了下执行计划,竟然发现了bitmap,开始还以为是建了位图索引,后来仔细一看是BITMAP CONVERSION FROM ROWIDS,才知道是在一个选择性非常差的列上建了普通索引,导致oracle优化器自动将索引转换成位图索引了。那个列上的索引其实没啥用处,仅仅是由于工程师觉得要用到这个列。如果选择性差的列需要建索引,建议建联合索引也能避免这个问题。
来源:CSDN
作者:肖雪松
链接:https://blog.csdn.net/xiaofeng_rui/article/details/104796398