原文地址:
http://www.eygle.com/archives/2007/07/oracle_assm_level3_bmb.html
非常钦佩eygle大师的聪明,采取这种方式去构造了一个真正意义上的三级位图块。可是对于里面的一句话,我感觉是错误的。还希望哪位高人给予我你的理解.
这是原话。‘段头记录了First Level 3 BMB和Last Level III BMB的地址,那么这就足够了,这里的双向指针完全可以进行Level 3级位图块的导航,而这第0个三级位图块也即段头,并无需记录所有3级位图块的地址。’
数据段的段头记录着第一个三级位图(即段头本身),与最后一个三级位图的块地址。
然后从第二个三级位图块开始,块内都记录着下一个三级位图快的地址,并不记录上一个三级位图块地址,这明显是单向导航。————与EYGLE所说的双向指针不符。这是一点,再者
还有一点可能欠考虑了,第一个三级位图块(段头)和第二个三级位图块,ORACLE如何导航。因为段头只记录第一个三级位图块和最后一个,而不记录第二个。ORACLE是如何知道第二个三级位图块的地址的。
由于段内三级位图块的单向导航,ORACLE只要能找到第二个三级位图块,依次肯定能找到第三个。
可ORACLE怎么才能找到第二个三级位图块呢??段头是没有这个信息的,只有第一个和最后一个的地址信息。
[ 本帖最后由 wei-xh 于 2010-4-16 21:18 编辑 ]
非常钦佩eygle大师的聪明,采取这种方式去构造了一个真正意义上的三级位图块。可是对于里面的一句话,我感觉是错误的。还希望哪位高人给予我你的理解.
这是原话。‘段头记录了First Level 3 BMB和Last Level III BMB的地址,那么这就足够了,这里的双向指针完全可以进行Level 3级位图块的导航,而这第0个三级位图块也即段头,并无需记录所有3级位图块的地址。’
数据段的段头记录着第一个三级位图(即段头本身),与最后一个三级位图的块地址。
然后从第二个三级位图块开始,块内都记录着下一个三级位图快的地址,并不记录上一个三级位图块地址,这明显是单向导航。————与EYGLE所说的双向指针不符。这是一点,再者
还有一点可能欠考虑了,第一个三级位图块(段头)和第二个三级位图块,ORACLE如何导航。因为段头只记录第一个三级位图块和最后一个,而不记录第二个。ORACLE是如何知道第二个三级位图块的地址的。
由于段内三级位图块的单向导航,ORACLE只要能找到第二个三级位图块,依次肯定能找到第三个。
可ORACLE怎么才能找到第二个三级位图块呢??段头是没有这个信息的,只有第一个和最后一个的地址信息。
[ 本帖最后由 wei-xh 于 2010-4-16 21:18 编辑 ]
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22034023/viewspace-662240/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22034023/viewspace-662240/
本文深入剖析了Oracle数据库中三级位图块导航的实现方式,针对eygle大师提出的观点进行了细致讨论。文章详细解释了段头记录的FirstLevel3BMB和LastLevelIIIBMB地址如何构成双向导航机制,以及如何通过这些信息导航到第一个三级位图块之外的其他块。同时,文章还解答了如何在单向导航中找到第二个三级位图块的问题,澄清了关于Oracle数据库三级位图块导航机制的误解。
640

被折叠的 条评论
为什么被折叠?



