zoukankan      html  css  js  c++  java
  • Oracle ROWID格式及rdba

    Oracle 8i以上smallfile表空间的ROWID格式是:OOOOOO.FFF.BBBBBB.RRR,其中:

    O--对象号

    F--文件号

    B--块号

    R--行号

    ROWID是一个64位数,共18位。

    64位编码表如下:

    64位码 对应十进制数值
    A~Z 0~25
    a~z 26~51
    0~9 52~61
    + 62
    / 63

    ROWID存储为10个字节,共80位,组成形式:32bit obj# +10bit rfile#+22bit block# +16bit row#

    可以使用dbms_rowid包对ROWID进行解析:

    select dbms_rowid.rowid_object('&&rowid') obj_id#, dbms_rowid.rowid_relative_fno('&&rowid') rfile#, dbms_rowid.rowid_block_number('&&rowid') block#, dbms_rowid.rowid_row_number('&&rowid') row# from dual;

    从Oracle10g开始,Oracle引入了bigfile表空间,ROWID格式随之变为:OOOOOO.LLLLLLLLL.RRR,其中:

    O--对象号

    L--块号

    R--行号

    存储格式也调整为:32bit obj# + 32bit block# +16bit row#

    RDBA是relative data block address, 即相对数据块地址。在DUMP数据库块时会经常看到RDBA,RDBA是一个16进制数,组成形式:10bit rfile#+22bit block#。

    以下两种方法可以用来转换RDBA:

    1. 使用dbms_utility包

    select dbms_utility.data_block_address_file(to_number('&&rdba','xxxxxxxxxxxxx')) file_id, dbms_utility.data_block_address_block(to_number('&&rdba','xxxxxxxxxxxxx'))  block_id from dual;

    2. 直接解析

    select trunc(to_number('&&rdba','xxxxxxxxxxxxx')/power(2,22)) file_id, mod(to_number('&&rdba','xxxxxxxxxxxxx'),power(2,22)) block_id from dual;

  • 相关阅读:
    二:数组去重
    一:JS 数组对象根据相同key合并成新的数组对象(将一维数组转为多维数组)
    滑动scroll没有效果
    品字布局占满全屏
    js计算器
    html样式初始化
    js计算器
    js邮箱验证
    js菱形
    js实现金字塔图形
  • 原文地址:https://www.cnblogs.com/cqubityj/p/2339691.html
Copyright © 2011-2022 走看看