关于BITMAP索引

[复制链接]
查看11 | 回复5 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
我在表TEST上的A字段上建普通索引时,SELECT * FROM TEST WHERE A=1的执行计划是先扫描索引,而把索引类型改成BITMAP型时执行计划就变成了全表扫描了,加了提示
SELECT /*+(TEST IDX_TEST)*/ * FROM TEST执行计划还是全表扫描,这是什么原因,怎么才能使用到我的BITMAP索引。
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
ORACLE使用提示的语法不是如你所写
SELECT /*+ index(table_name,index_name) */ * from table_name;
不知道这样又没有错。
不过,bitmap索引的使用在这里不是很恰当。
bitmap主要用在where中有很多or 连接的语法。
察看更详细的帮助,使用下面的超连。
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
分析一下你的表先
sqlplus>analyze table yourtablename compute statistics ..................
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
谢谢两位现在可以了。
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
我遇到的情况也是执行计划不走那个索引,表和索引都分析过,并且optimizer_mode=first_rows
但是性能提高了很多,不知道怎么解释?
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
楼上的,具体情况要具体分析
全表不一定比索引扫描慢的啊,或者你所谓的性能提高了很多这种说法的判断依据是什么?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行