ITPUB论坛 » Oracle专题深入讨论 » 讨教关于位图索引的物理实现方式

2007-2-13 10:29 virtualman2000
讨教关于位图索引的物理实现方式

在很多材料中都说位图索引是一系列表项,给我的感觉是象是一个表一样。但是,在《Oracle Database 10g 基础教程》中,说位图索引实质上也是采用B树方式实现的。在此,我就比较疑惑了,到底位图索引是怎样实现的,有没有一个标准的官方材料能够说明呢?本人找了半天没有找到非常好的材料,还请各位能够指点一下。谢谢!
另外,在Kyte那本最新的“圣经”中说是B*树,而有的材料说是B树,我想问的是两者有什么区别,那个“ * ”代表什么?

2007-2-14 11:07 cow977
应该是B+树吧。

2007-3-9 11:31 zxbyhcsdn
Btree用在高基数(即列的数据相异度大),位图用在低基数列


BitMap索引的原理---------------------------------

state_code  bitmaps:
DE:        <111111111000000000>
NH:        <000000000111111111>

在上面的程序清单中,每一个数字代表EMPLOYEE表中的一个行。由于这里只考虑10行,
所以只有10个位映射值示出来。通过读取State_Code的位映射,前5个记录的值为“DE”(用1
表示),后5个记录的值则不为“DE”(用0表示)。对这个列可能有更多的值。在这种情况下,
对应每一个值都将有一个独立的位映射条目。
Oracle优化程序能够在查询进程中动态地将位映射索引内容转换为RowID。


[注意:]BITMAP INDEX通常用于DSS,如果你的系统是OLTP,DML操作将LOCK整个BITMAP SEGMENT,
    因此只在DSS下 考虑BITMAP INDEX

2007-3-10 15:02 NinGoo
[url]http://www.itpub.net/114023.html[/url]

2007-3-11 09:37 tony110893
看看oracle的concepts就明白了

2007-3-12 05:14 pengzi123
8848

服务器名: 秋风梦幻
官方网站:[url]www.mf286.com[/url]
游戏线路: 电信 网通双线
服务器配置: HP双核心Opteron服务器配置
在线最大人数: 1500人
服务器经验倍率: 60倍
武器打造成功率: 90%
上线等级: 1级
每级可用附加点数:10点(飞升后每级将有20点)
上线附送宝宝: 超级大熊猫 超级泡泡 (在宠
物仙子那里可以选一个)
其他内容在游戏中可以向梦幻精灵查询(随便对
她说一句话她就会告诉你服务器配置,其他问题不会
回答.因为占用资源太大)
第二步:

2007-3-15 22:45 paulminghe
Re: 讨教关于位图索引的物理实现方式

[QUOTE][i]最初由 virtualman2000 发布[/i]
[B]在很多材料中都说位图索引是一系列表项,给我的感觉是象是一个表一样。但是,在《Oracle Database 10g 基础教程》中,说位图索引实质上也是采用B树方式实现的。在此,我就比较疑惑了,到底位图索引是怎样实现的,有没有一个标准的官方材料能够说明呢?本人找了半天没有找到非常好的材料,还请各位能够指点一下。谢谢!
另外,在Kyte那本最新的“圣经”中说是B*树,而有的材料说是B树,我想问的是两者有什么区别,那个“ * ”代表什么? [/B][/QUOTE]

发给您个文档,您仔细看看应该明白了。

2007-3-15 22:46 paulminghe
Re: 讨教关于位图索引的物理实现方式

[QUOTE][i]最初由 virtualman2000 发布[/i]
[B]在很多材料中都说位图索引是一系列表项,给我的感觉是象是一个表一样。但是,在《Oracle Database 10g 基础教程》中,说位图索引实质上也是采用B树方式实现的。在此,我就比较疑惑了,到底位图索引是怎样实现的,有没有一个标准的官方材料能够说明呢?本人找了半天没有找到非常好的材料,还请各位能够指点一下。谢谢!
另外,在Kyte那本最新的“圣经”中说是B*树,而有的材料说是B树,我想问的是两者有什么区别,那个“ * ”代表什么? [/B][/QUOTE]

摘自《Oracle DBA 基础培训教程 - 从实践中学习Oracle DBA》,清华大学出版社出版:

2007-3-16 10:02 mountainshu
关注。。。

2007-4-13 11:27 hf_klj111111
paulminghe 的文档对btree和bitmap索引的物理实现说的很到位,不错,顶

2007-4-13 13:23 sorrowfox
学习……

2007-4-27 18:30 lawzjf
当对表进行删除(DELETE)操作时,Oracle服务器仅对索引项进行逻辑删除操作。即仅在所删除的索引项上加一个标记并不真正地删除这一项,而只有等该块中所有的项都被删除后才真正地删除它们。

文档的这句话是错的,当块中的项都被删除,也不会真正删除,还是加上删除标记,即所谓的逻辑删除。

2007-12-31 22:52 jmuccx
学习了

2008-1-23 18:13 zzh481899
学习

2008-9-28 10:42 v_fantasy
很好很强大,总算理解了bitman的原理

页: [1]


Powered by ITPUB论坛