zoukankan      html  css  js  c++  java
  • [每日一题] 11gOCP 1z0-052 :2013-09-4 block header grows............................................A33

    转载请注明出处:http://write.blog.csdn.net/postedit/11100311


    正确答案是:AD

    要理解这道题就要去了解数据块的结构。引用OCPPPT中的一幅图:



    从这幅图中可以看出数据块的数据增长(grow)由上往下增长和由下到往上增长的:

    1、             由上往下增长是其实是ITL事务槽的事务增加。

    在oracle 10g之后默认初始化在创建表时ITL事务槽是2个。这个事务槽的范围是:1-255.就是说最大可以到255个ITL事务槽,什么时间事务槽才会增长呢,当一个数块中的数据在做并行的DML操作时,会申请好多ITL事务槽,所用的空间应该会有PCTFREE这个参数所预留的这空间中申请。

    一个事务槽大概占用24个字节,下面用Dump命令转储出数据块的ITL槽务槽信息:

    tl           Xid            Uba          Flag  Lck        Scn/Fsc

    0x01  0x0004.00f.00000346 0x00c00793.00bb.22 --U-    1   fsc 0x0000.0015a3eb

    0x02  0x0000.000.00000000 0x00000000.0000.00 ----    0   fsc 0x0000.00000000

    Itl: ITL事务槽号的流水编号

    Xid:transac[X]tionidentified(事务ID),由und的段号+undo的槽号+undo槽号的覆盖次数三部分组成

    Uba:undo blockaddress记录了最近一次的该记录的前镜像(修改前的值)

    Flag:C是提交,U是快速提交,---是未提交

    Lck:锁住了几行数据,对应有几个行锁

    Scn/Fsc:Scn=SCN ofcommited TX; Fsc=Free space credit(bytes)

    这里fsc 0x0000.0015a3eb是指提交的scn,这个值大于上次清除块时的scn=csc:0x00.15a3ea(此scn是这个块中最小的SCN of commited)

    SCN WRAP:如果事务已提交并完成清洗,该字段保存事务提交SCN的SCN WRAP部分,否则该字段保存空闲预支字节数(FSC).比如我删除了一行数据10个字节,在事务提前前,这10个字节就属于fsc(即会写到SCN WRAP),只有事务提交后,才能正式返回到空闲空间。

    具体可以参数一下这个贴子:明明白白数据块---深入解析数据块格式:

    http://www.itpub.net/forum.php?mod=viewthread&tid=1772905

    2、             由下往上增长的其实是表中的数据做UPDATE.

      数据块中使用了参数PCTFREE,默认10%.留着这个空间做UPDATE,在表中我们用了大量的varchar2字段,假设我们定某个字段为varchar2(100),而我们实际插入这个字段是10个字节,这样把块都给插满了(注意数据插入是从块的底层向上插,插到PCTFREE线以下就不再往下插了),好下次要更新数据,如果把一个10字节的修改成100个字节的,这时增加了90个字节,这个90个字节就会去PCTFREE中找,找到了空间直接就更新了,要是找不到就会发生行迁移了,发生行迁移下次查询时就会有性能问题,找一条记录需要读两个数据块。为了尽量避免行迁移发生就用了PCTFEE参数预留些空间出来给UPDATE用。PCTFREE空间在块的头部。

    建表部分语法的存储参数:

    PCTFREE(默认10%) ---在ASSM/MSSM都在用。

    PCTUSED(默认40%) ---在ASSM下已被废弃了。

    INITRANS 2(默认这个参数不写初化始为2,就是ITL事务槽为2)


    QQ:252803295

    学习交流QQ群:
    DSI&Core Search  Ⅰ 群:127149411(2000人技术群:未满)
    DSI&Core Search  Ⅱ 群:177089463(1000人技术群:未满)
    DSI&Core Search  Ⅲ 群:284596437(500人技术群:未满)
    DSI&Core Search  Ⅳ 群:192136702(500人技术群:未满)
    DSI&Core Search  Ⅴ 群:285030382(500人闲聊群:未满)



    MAIL:oracledba_cn@hotmail.com

    BLOG: http://blog.csdn.net/guoyjoe

    WEIBO:http://weibo.com/guoyJoe0218

    ITPUB: http://www.itpub.net/space-uid-28460966.html

    OCM:   http://education.oracle.com/education/otn/YGuo.HTM

      

  • 相关阅读:
    一道华为笔试题--内存块排序
    正则表达式
    Paxos算法的一个简单小故事
    Zookeeper中的Leader选取机制
    CCF201604-2俄罗斯方块
    Mybatis----Mapper.xml中的输入映射
    Mybatis----mybatis的全局配置文件SqlMapConfig.xml的配置
    Mybatis----开发dao
    Mybatis----入门程序
    Spring----面向切面编程和通知类型
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3304081.html
Copyright © 2011-2022 走看看