专注各种脚本编程
Baidu
加入收藏夹
本站内容有下面分类知识,欢迎您的到来^_^
shell相关:指令篇 基础篇 脚本欣赏 编程实例 shell问问 shell视频教程 技巧篇 水平测试 E文资料 vi编辑器 高级Bash脚本编程指南
其他:mysql perl c语言 oracle
当前位置:| 主页>oracle>

插入时寻找空闲块的步骤篇(ASSM表空间)晶晶实验1

百度收藏 QQ搜藏

步3:转储L2块9号文件10号块:
SQL> alter system dump datafile 9 block 10;
系统已更改。
*** 2008-02-15 13:52:03.359
Start dump data blocks tsn: 11 file#: 9 minblk 10 maxblk 10
buffer tsn: 11 rdba: 0x0240000a (9/10)
scn: 0x0000.001e0767 seq: 0x01 flg: 0x04 tail: 0x07672101
frmt: 0x02 chkval: 0x4cfb type: 0x21=SECOND LEVEL BITMAP BLOCK

Dump of Second Level Bitmap Block
   number: 2       nfree: 1       ffree: 1      pdba:     0x0240000b
   Inc #: 0 Objd: 52176
  opcode:0
xid:
  L1 Ranges :
  --------------------------------------------------------
   0x02400009  Free: 1 Inst: 1
   0x0240001d  Free: 3 Inst: 1
 
  --------------------------------------------------------
End dump data blocks tsn: 11 file#: 9 minblk 10 maxblk 10
这里我们看到 L2块中有两个L1块 分别是 9号块 和 29号块,到这一步,Oracle如何在L2中选择L1?为了提高插入的并行度,这里将根据完成插入操作服务器进程的PID,计算出一个Hash值,根据此Hash值在多个L1中选择一个。也就是在多个L1中根据进程PID随机选择一个。此处要注意的是,高高水点(不是输入错误,高水点在ASSM中有两个:低高水点和高高水点)之后的块不在选择范围内。
如果从两个会话中插入,Oracle会尽量将这两个进程分配到两个L1块中。
        假设,这里选择了29号,我们再来转储它。
步4:
SQL> alter system dump datafile 9 block 29;
系统已更改。
*** 2008-02-15 14:00:26.078
Start dump data blocks tsn: 11 file#: 9 minblk 29 maxblk 29
buffer tsn: 11 rdba: 0x0240001d (9/29)
scn: 0x0000.001e0767 seq: 0x0c flg: 0x04 tail: 0x0767200c
frmt: 0x02 chkval: 0x4faa type: 0x20=FIRST LEVEL BITMAP BLOCK
Dump of First Level Bitmap Block
--------------------------------
   nbits : 4 nranges: 2         parent dba:  0x0240000a   poffset: 1    
   unformatted: 0       total: 10        first useful block: 1     
   owning instance : 1
   instance ownership changed at 02/15/2008 12:01:34
   Last successful Search 02/15/2008 12:01:34
   Freeness Status:  nf1 0      nf2 1      nf3 0      nf4 0     

   Extent Map Block Offset: 4294967295
  First free datablock : 5     
   Bitmap block lock opcode 0
   Locker xid:     :  0x0000.000.00000000
   Inc #: 0 Objd: 52176
  HWM Flag: HWM Set
      Highwater::  0x02400027  ext#: 4      blk#: 5      ext size: 5    
  #blocks in seg. hdr's freelists: 0    
  #blocks below: 21  
  mapblk  0x00000000  offset: 4    
  --------------------------------------------------------
  DBA Ranges :
  --------------------------------------------------------
   0x0240001d  Length: 5      Offset: 0     
   0x02400022  Length: 5      Offset: 5     
 
   0:Metadata   1:FULL   2:FULL   3:FULL
   4:FULL   5:25-50% free   6:FULL   7:FULL
   8:FULL   9:FULL
  --------------------------------------------------------
End dump data blocks tsn: 11 file#: 9 minblk 29 maxblk 29
        此L1块中包含10个数据块,在这10个块中的选择,Oracle也是根据进程的PID,随机挑选。同样,两个不同进程发布的插入,Oracle会尽量使其插入进不同的数据块中,以提高并发性。

上一页 1 2下一页
上一篇:oracle数据库名/实例名/操作系统环境变量资料 下一篇:插入时对L1块的选择篇(晶晶实验二)

power by soyo123 2007-2008