dump index的同时对rowid存储的解析
来源:互联网 发布:rbf神经网络算法原理 编辑:程序博客网 时间:2024/05/21 06:20
本地有个pub_department的表,索引为PK_PUB_DEPARTMENT。
1.找到object_id
select object_id from dba_objects s where s.object_name='PK_PUB_DEPARTMENT';
OBJECT_ID
----------
64408
2.进行转储
alter session set events 'immediate trace name treedump level 64408';
----- begin tree dump
branch: 0x201262433629732 (0: nrow:2,level:1)
leaf: 0x2012626 33629734 (-1: nrow: 292 rrow:292)
leaf: 0x2012627 33629735 (0: nrow: 311 rrow:311)
----- end tree dump
select dbms_utility.data_block_address_file(33629735) "file",
dbms_utility.data_block_address_block(33629735) "block"
from dual;
file block
---------- ----------
8 75303
alter system dump datafile 8 block 75303;
。。。。。。。。。。。。省略部分内容。。。。。。。。。。。。
row#310[7921] flag:------, lock: 0, len=11, data:(6): 02 06 d6 25 00 0d
col 0; len 2; (2): c35b
可以看到索引的内部结构为值(c35b为900000)+rowid(0206d625000d此处只是文件号+块号+行数)
select utl_raw.cast_to_number('c35b') from dual;
UTL_RAW.CAST_TO_NUMBER('C35B')
------------------------------
900000
3.对rowid的解析
select rowid,dbms_rowid.rowid_object(rowid) object_id,--(AAAMim)AAFAAAAAMAAC数据对象号
dbms_rowid.rowid_relative_fno(rowid) file_id,-- AAAMim(AAF)AAAAAMAAC 相对文件号
dbms_rowid.rowid_block_number(rowid) block_id,-- AAAMimAAF(AAAAAM)AAC 在第几个块
dbms_rowid.rowid_row_number(rowid) num -- AAAMimAAFAAAAAM(AAC)在block中的行数
from pub_departmentwhere department_id =900000;
ROWID OBJECT_ID FILE_ID BLOCK_ID NUM
------------------ ---------- ---------- ---------- ----------
AAAPuXAAIAABtYlAAN 64407 8 448037 13
select rowid,dump(rowid,16) dump_rowid from pub_department where department_id=900000;
ROWID DUMP_ROWID
-------------------- --------------------------------------------------
AAAPuXAAIAABtYlAAN Typ=69 Len=10:0,0,fb,97,2,6,d6,25,0,d
SELECT pkg_number_trans.f_hex_to_dec('fb97') FROM dual;--64407 ojbect_id
--第5、6为的值除以64得到的商是相对文件号,余数是BLOCK号的高位,
乘以65536后加上低两位才是BLOCK号。
包pkg_number_trans来自于http://blog.csdn.net/guogang83/article/details/8002014
SELECT pkg_number_trans.f_hex_to_dec('0206') FROM dual;
select 518/64 from dual; --8 文件号
select mod(518,64) from dual- -6余数为block的高位
SELECT pkg_number_trans.f_hex_to_dec('06d625') FROM dual;--448037 块号
SELECT pkg_number_trans.f_hex_to_dec('0d') FROM dual;--13 行号
- dump index的同时对rowid存储的解析
- 怎么将dump 出来的 bitmap index 中的rowid 还原回 file_id,block_id
- oracle9i的rowid的解析
- rowid的理解及block转储(dump)、ITL、UBA、DBA
- index branch dump 里的kdxbrlmc意思
- TABLE ACCESS BY INDEX ROWID前面的星号
- unique index与non-unique index的dump区别
- 对rownum和rowid的理解
- spring mvc中处理多对多的同时存储
- Oracle获取Oracle rowid信息的存储过程
- 根据rowid得出存储的数据文件跟数据块
- partition 对index的影响
- impdp将不同路径下的dump文件同时…
- z-index的深度解析
- Toad最最常用的快捷键 总结于此 ROWID解析
- 关于ora-1652的一点总结–续(详解rowid,index entry header)
- OD dUMP对重定位的处理
- 【android】解析dump的几种方式
- sql中的group by 和 having 用法解析
- Wifi测试
- VS常用快捷键
- c++程序员必看的书
- 5个基于Web的开源即时聊天应用推荐
- dump index的同时对rowid存储的解析
- Android拦截短信,接收短信
- 在美国,每三个月就有一家10亿美元的企业被创立
- Oracle 监听挂起hang住的一个BUG : 4518443
- POJ题目分类
- 使用选择键(SelectionKey)
- LVS资料精选:打造企业低碳服务系
- android 获取摄像头像素
- 2012 Strata+Hadoop World演讲资料下载专辑