[每日一题] 11gOCP 1z0-052 :2013-09-4 block header grows............................................A33

时间:2021-05-07 07:40:26

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

[每日一题] 11gOCP 1z0-052 :2013-09-4 block header grows............................................A33

正确答案是:AD

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

[每日一题] 11gOCP 1z0-052 :2013-09-4 block header grows............................................A33

从这幅图中可以看出数据块的数据增长(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)

[每日一题] 11gOCP 1z0-052 :2013-09-4 block header grows............................................A33

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