免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 778 | 回复: 0
打印 上一主题 下一主题

Index pairs的研究 [复制链接]

论坛徽章:
1
金牛座
日期:2013-11-29 16:30:52
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-19 13:56 |只看该作者 |倒序浏览
普通B*树的pairs
branch (separator key,dba) paris
leaf (index key,rowid)
 
row#1[8008] flag: -----, lock: 0
col 0; len 2; (2):  c1 03                   --index key
col 1; len 6; (6):  00 40 b9 62 00 01       --rowid
 
通过dbms_utility.data_block_address_file和dbms_utility.data_block_address_block可以得到file#和block#
 
SQL> select to_number('0040b962','xxxxxxxxxxxx') from dual;
TO_NUMBER('0040B962','XXXXXXXXXXXX')
------------------------------------
                             4241762
 
SQL> select dbms_utility.data_block_address_file(4241762),dbms_utility.data_block_address_block(4241762) from dual;
DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE(4241762)
---------------------------------------------
DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK(4241762)
----------------------------------------------
                                            1
                                         47458
 
 
bitmap index
(key,begin rowid,end rowid,bitmap wrap)
 
row#1[7990] flag: -----, lock: 0
col 0; len 2; (2):  c1 03                    --key
col 1; len 6; (6):  00 40 b9 62 00 00        --begin rowid
col 2; len 6; (6):  00 40 b9 62 00 07        --end rowid
col 3; len 1; (1):  01                       --encoded bitmap(bitmap segment)
其中key和encoded bitmap 储存在所有的bimtap segments中
 
reverse index
和普通index一样,只是值反转
 
row#1[8008] flag: -----, lock: 0
col 0; len 2; (2):  03 c1                    --reverse key
col 1; len 6; (6):  00 40 b9 62 00 01
 
funcation index
 
row#1[8010] flag: -----, lock: 0
col 0; len 1; (1):  42                       --virtual col
col 1; len 6; (6):  00 40 b9 62 00 01        --rowid
 
iot
data储存在index中,所以需要dump主键索引
(key,non_key_column_values)
 
row#0[8022] flag: K----, lock: 0
col 0; len 2; (2):  c1 02                    --primary key
tl: 5 fb: --H-FL-- lb: 0x0  cc: 1
col  0: [ 1]
Dump of memory from 0x0AA86DBB to 0x0AA86DBC
AA86DB0                   61010100                   [...a]  --non_key_column_values
row#1[8012] flag: K----, lock: 0
col 0; len 2; (2):  c1 03
tl: 5 fb: --H-FL-- lb: 0x0  cc: 1
col  0: [ 1]
Dump of memory from 0x0AA86DB1 to 0x0AA86DB2
AA86DB0 00046201                             [.b..]
row#2[8000] flag: K----, lock: 2
col 0; len 2; (2):  c1 04
tl: 7 fb: --H-FL-- lb: 0x0  cc: 1
col  0: [ 3]
Dump of memory from 0x0AA86DA5 to 0x0AA86DA8
AA86DA0          61616103                        [.aaa]
 
 
可以利用dbms_rowid的rowid_relative_fno,rowid_block_number,rowid_object得到file#,block#,obj#
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP