love wife & love life —Roger的Oracle&MySQL技术博客

Phone:18180207355 提供专业Oracle&MySQL数据恢复、性能优化、迁移升级、紧急救援等服务

intra blcok chain

本站文章除注明转载外,均为本站原创: 转载自love wife & love life —Roger的Oracle&MySQL技术博客

本文链接地址: intra blcok chain

最近在一个优化项目中,通过awr报告发现table fetch continued row 指标很高,怀疑是行迁移/链接比较严重。
后来经过沟通发现,原来客户的数据库中存在几个table,其column 数目超过255. 针对超过255列的行数据.如下:

6 Responses to “intra blcok chain”

  1. SUNNY Says:

    你DUMP BLOCK的命令是什么啊?

  2. Travel Says:

    roger,感觉你理解错误了

    H: Head of row piece
    K:Cluster key
    C:Cluster table member
    D:Deleted row
    F:First data piece,
    L:Last data piece
    P:First column continues from previous row
    N:Last column continues

    #define KDRHFK 0×80 Cluster Key
    #define KDRHFC 0×40 Clustered table member
    #define KDRHFH 0×20 Head piece of row
    #define KDRHFD 0×10 Deleted row
    #define KDRHFF 0×08 First data piece|
    #define KDRHFL 0×04 Last data piece
    #define KDRHFP 0×02 First column continues from Previous piece
    #define KDRHFN 0×01 Last column continues in Next piece

  3. oracledba Says:

    我的理解没有问题。 nrid表是next row piece。前面的row 0从dump来看是row piece 1. 下面的row 1对应row piece 2. 但是实际上oracle读取的数据是先读下面row 1. 这个从前面的bbed dump看出来。 其实row 1的数据是在前面的。 从结构上来讲,row 0是第2个row piece。

  4. xccheese Says:

    博主没有理解错,是这样的,因为oracle在写数据的时候是从底部往上写的,所以读数据的时候会先读取下面的。 但是说消耗的IO一样我不太赞同。

  5. Lunar Says:

    roger,我也觉得你理解有问题。Oracle每次读一个block(非Exadata的系统),因此,是否会消耗额外的IO,需要看是否读取了多余的块,你这样构造的数据,读取的时候,IO没有太大改变,但是生产的数据,可能是读取了多余的block…………

  6. oracledba Says:

    针对block内的啊

Leave a Reply

You must be logged in to post a comment.