普通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#
阅读(771) | 评论(0) | 转发(0) |