Chinaunix首页 | 论坛 | 博客
  • 博客访问: 112234
  • 博文数量: 36
  • 博客积分: 2260
  • 博客等级: 大尉
  • 技术积分: 400
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-27 22:49
文章分类

全部博文(36)

文章存档

2011年(10)

2010年(26)

我的朋友

分类: Oracle

2011-02-05 22:37:32

普通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#
阅读(679) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~