有个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的更多相关文章

  1. 使用docker inspect获取数据卷信息时返回地址为空

    使用 docker inspect 命令查看容器挂载的volume的目录 $ sudo docker inspect --format "{{.Volumes}}" redis-m ...

  2. 用delphiXE7 dbExpress Framework提供的功能获取数据表信息

    uses +  Data.DBXMetaDataNames procedure TMainForm.Button2Click(Sender: TObject);var  Cmd: TDBXComman ...

  3. 从SQLite获取数据完成一个产品信息展示

    在ios实际开发当中,我们常常用到Core Data做为数据储存首选.但在处理一些大量复杂的数据值且数据之间相互关联的时候,这就不得不使用关系型数据库来实现.例如一个导航程序,自身应该包含大量的地图自 ...

  4. 使用Spark分析拉勾网招聘信息(二): 获取数据

    要获取什么样的数据? 我们要获取的数据,是指那些公开的,可以轻易地获取地数据.如果你有完整的数据集,肯定是极好的,但一般都很难通过还算正当的方式轻易获取.单就本系列文章要研究的实时招聘信息来讲,能获取 ...

  5. 爬虫 Http请求,urllib2获取数据,第三方库requests获取数据,BeautifulSoup处理数据,使用Chrome浏览器开发者工具显示检查网页源代码,json模块的dumps,loads,dump,load方法介绍

    爬虫 Http请求,urllib2获取数据,第三方库requests获取数据,BeautifulSoup处理数据,使用Chrome浏览器开发者工具显示检查网页源代码,json模块的dumps,load ...

  6. UWP 应用获取各类系统、用户信息 (1) - 设备和系统的基本信息、应用包信息、用户数据账户信息和用户账户信息

    应用开发中,开发者时常需要获取一些系统.用户信息用于数据统计遥测.问题反馈.用户识别等功能.本文旨在介绍在 Windows UWP 应用中获取一些常用系统.用户信息的方法.示例项目代码可参见 Gith ...

  7. sql server 获取数据字段(表的字段和类型信息)

    获取数据字段(表的字段和类型信息) SELECT 表名= then d.name else '' end, 表说明= then isnull(f.value,'') else '' end, 字段序号 ...

  8. C#开发BIMFACE系列24 服务端API之获取模型数据9:获取单个房间信息

    系列目录     [已更新最新开发文章,点击查看详细] 大厦建筑模型中,基本上包含多个楼层,每个楼层包含多个房间等信息.在<C#开发BIMFACE系列21 服务端API之获取模型数据6:获取单模 ...

  9. C#开发BIMFACE系列23 服务端API之获取模型数据8:获取模型链接信息

    系列目录     [已更新最新开发文章,点击查看详细] 在Revit等BIM设计工具中可以给模型的某个部位添加链接信息.即类似于在Office Word.Excel 中给一段文字添加本地文件链接或者网 ...

随机推荐

  1. Nginx正确记录post日志的方法

    Nginx正确记录post日志的方法 事实上可以很简单,这取决于把 access_log 放在哪个 location 里面. 一,放到包含fastcgi_pass或proxy_pass的Locatio ...

  2. C++中的const关键字

    http://blog.csdn.net/eric_jo/article/details/4138548 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方 ...

  3. Tomcat启用Gzip压缩

    原理简介         HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求服务器对应资源后,从服务器端将资源文件压缩,再输出到客户端,由客户端的浏览器负责解压缩并 浏览.相对于普通的 ...

  4. CF 317D Game with Powers

    题解: 将一个数的指数看着一个堆,问题变成这些堆的异或值 分析一个堆的情况,打SG表. #include<stdio.h> #include<string.h> ]; char ...

  5. 缓存初解(五)---SpringMVC基于注解的缓存配置--web应用实例

    之前为大家介绍了如何使用spring注解来进行缓存配置 (EHCache 和 OSCache)的简单的例子,详见 Spring基于注解的缓存配置--EHCache AND OSCache 现在介绍一下 ...

  6. nginx+apache+php+mysql服务器集群搭建

    由于需要搭建了一个基本的服务器集群.具体的配置方案先不说了,到有时间的时候再介绍.下面介绍下整 个方案的优点. 我总共准备了四台阿里云的主机,架设分别是A,B1,B2,C,A在集群的最前面,B1和B2 ...

  7. RESTful WebService入门

    RESTful WebService入门   RESTful WebService是比基于SOAP消息的WebService简单的多的一种轻量级Web服务,RESTful WebService是没有状 ...

  8. Quartz 并发/单线程

    Quartz 并发/单线程 Quartz定时任务默认都是并发执行的,不会等待上一次任务执行完毕,只要间隔时间到就会执行, 如果定时任执行太长,会长时间占用资源,导致其它任务堵塞.1.在Spring中这 ...

  9. Android 线程通讯类Handler

    handler是线程通讯工具类.用于传递消息.它有两个队列: 1.消息队列 2.线程队列 消息队列使用sendMessage和HandleMessage的组合来发送和处理消息. 线程队列类似一段代码, ...

  10. java 菱形

    //画菱形 一半 for(int hs=1;hs<11;hs++) //行数 { //画空格 for(int kg = 9; kg >= hs; kg--) //空格数 { System. ...