社区
基础和管理
帖子详情
关于 BITMAP index ?????
fxbsmile
2003-01-15 10:05:42
test表的A字段值范围为(1,2,3,4,5),现在在这个字段上建了一个BITMAP INDEX
现在 select * from test where a=5 ;
可为什么在解释计划里依然是用全表扫描,,,
难道不能利用,,
谢谢........
...全文
58
11
打赏
收藏
关于 BITMAP index ?????
test表的A字段值范围为(1,2,3,4,5),现在在这个字段上建了一个BITMAP INDEX 现在 select * from test where a=5 ; 可为什么在解释计划里依然是用全表扫描,,, 难道不能利用,, 谢谢........
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
biti_rainy
2003-01-16
打赏
举报
回复
14条数据,不是10条
sorry
biti_rainy
2003-01-16
打赏
举报
回复
我想
如果是 select count(*) from test where a=5 ;
应该会使用 bitmap索引的
最好做一次analyze
但是 select * from test where a=5 ;
你认为使用索引会比较快么?
假如数据覆盖有 20% ,你认为通过索引会很快?
你知道bitmap的索引结构嘛
col value bitmap数据(bit)(开始rowid x,终止rowid x+ 14)
1 00011101010101
2 10100000000000
3 01000010000000
4 00000000100000
5 00000000001010
上面是一个例子了,包含数据条数为 bit 数量 10条数据,假设数据全部连续存储在磁盘上
这样的结构下
bitmap 只存储了起始rowid 和 结束rowid并且不用重复的保存column value
从而降低了IO
wanghai
2003-01-16
打赏
举报
回复
你试着插大量数据进去看看
wanghai
2003-01-16
打赏
举报
回复
我想索引是基于数据块的,如果你所有数据都在一个数据块上,就会产生全表扫描
wanghai
2003-01-16
打赏
举报
回复
A字段是什么类型的?
hrb_qiuyb
2003-01-16
打赏
举报
回复
其实 penitent(只取一瓢) 兄说得满好的,不过我还要进行一下补充。
对于一个表在查询时所使用的查询计划,取决于以下几点。
1、optimizer_mode初始化参数,其默认值为choose即如一个表有索引,没statistics信息,则表在查询在查询时执行基于规则(rule),否则执行基于代价(cost)的检索方式。
2、还有一个重要的因素是表的大小,如果优化器发现表只有几行的数据,即使有索引它也不会考虑的,而不是是否是因为bitmap index的因素。
pausing
2003-01-16
打赏
举报
回复
还要看你的sql优化方法。
penitent
2003-01-16
打赏
举报
回复
位图索引适合与低聚合度,大型,少量写操作的数据仓库
如性别等字段
如果仅仅在一个字段上建立位图索引,是没有什么效果的
位图索引适合于多个位图索引列联合检索的时候,会有很好的效果
如where a=5 and b=false and c=0假如a,b,c上都有位图索引
------------------
注意,大量写操作的表建立位图索引会降低性能
关于具体的说明,请参考文档
wanghai
2003-01-16
打赏
举报
回复
hrb_qiuyb(大森林) 说的第2点这篇文章中也提到了,建议加大数据量测试
注意这一句话
the optimizer felt pretty sure that 1/3(一个比较大的数值) of the table
would be accessed via the index and hence a full scan was in order
wanghai
2003-01-16
打赏
举报
回复
http://asktom.oracle.com/pls/ask/f?p=4950:8:1878747::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:961030020653,%7Bbitmap%7D
wanghai
2003-01-16
打赏
举报
回复
建议看一下这篇文章
Bitmap
Index
ing and Related Techniques - Slides-计算机科学
Bitmap
Index
es" Simple
Bitmap
index
" Projection
Index
" Bit-Sliced
Index
" Range-Based
Index
es " Encoded
Bitmap
Index
es! Advantages and disadvantages of
Bitmap
Index
es ! Comparison of the different ...
Exadata and Optimizer
So what operations can actually be offloaded? –Full table scan –Fast full
index
scan of a B-Tree or
bitmap
index
–Bloom filters
Bitmap
index
AND
bitmap
join
index
Bitmap
index
的主要思想就是,针对每一个可能的值x,建立一个或一组位图映射,每个bit为1代表这个位置的值等于x,为0则不等于x。 而每个位置都可以直接映射到某一行的rowid。由于在执行DML操作时,锁定的是整个...
GreenPlum的
Bitmap
Heap Scan和
Bitmap
Index
Scan
一、
Bitmap
Heap Scan/
Bitmap
Index
Scan 在查看GP的执行计划会看到
Bitmap
Heap Scan/
Bitmap
Index
Scan/
Bitmap
Or/
Bitmap
And.这些关键字是什么意思呢?
Bitmap
Index
Scan/
Bitmap
Or/
Bitmap
And ->
Bitmap
...
Bitmap
Index
Scan 与
Index
Scan 索引对比
Index
es are an important structure for database performance. You can refer to previous posts ... These
index
es are accessed by
Index
Scan,
Index
Only Scan, and
Bitmap
Index
Scan. In this post, we will .
基础和管理
17,377
社区成员
95,127
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章