zoukankan      html  css  js  c++  java
  • ORACLE ROWID解析

    1、select ROWID from TT WHERE ROWNUM=1 FOR UPDATE  获取到一个ROWID:'AAAOcTAAJAAAAASAAB'

    2、ROWID 可以分为4段进行解析,使用64进制方式存储

         AAAOcT                   AAJ                   AAAAAS                   AAB

         段名称         相对文件编号       数据块编号                数据块上第几条记录

    3、其中A-Z代表0-25,a-z代表26-51,0-9代表52-61,+代表62,/代表63

    4、换算AAAOcT=14*64*64+28*64+19=59155   

              AAJ      =9

              AAAAAS=18

              AAB      =1

    5、通过select  owner,object_name,object_id,data_object_id from dba_objects t where object_id = 59155

         可以看到: SYS     TT                59155     59155

         其中object_id和data_object_id在正常情况下是相等的,在truncate和move表后,data_object_id会发生变更

         其实object_id和data_object_id同样是表示数据库对象的一个唯一标志,但是object_id表示的是逻辑id,data_object_id表示的是物理id。

         如果一些object没有物理属性的话那它就不存在data_object_id,例如procedure,function,package,data type,db link,mv定义,view定义,临时表,分区表定义等等这些

         object都是没有对应着某个segment,因此它们的data_object_id都为空。

         例如:先创建一个表TTT:create table ttt as select * form tt where rownum<10

         然后select  owner,object_name,object_id,data_object_id from dba_objects t where object_NAME = 'TTT'可以看到如下结果:

                         SYS    TTT               59164     59164 

         执行truncate table TTT后再执行select  owner,object_name,object_id,data_object_id from dba_objects t where object_NAME = 'TTT'

                         SYS    TTT               59164     59165

         其中data_object_id发生了改变。

         使用alter table TTT move后再执行select  owner,object_name,object_id,data_object_id from dba_objects t where object_NAME = 'TTT'

                         SYS    TTT               59164     59168

         其中data_object_id也发生了改变。

    6、使用SELECT FILE_ID,RELATIVE_FNO,TABLESPACE_NAME FROM DBA_DATA_FILES T WHERE T.file_id='9';

  • 相关阅读:
    How to become a hacker
    逻辑地址、线性地址、物理地址和虚拟地址
    java configuration
    Java 理论与实践: 变还是不变?
    Teach Yourself Programming in Ten Years
    border padding margin , the difference among them
    hashCode方法,equals方法,HashSet,HasMap之间的关系
    工程名 显示红色叹号
    记The_C_Programming_Language的错误
    VIM简单介绍学习1
  • 原文地址:https://www.cnblogs.com/cangos/p/2342472.html
Copyright © 2011-2022 走看看