知识大全 Oracle(blockcleanout)的块清除

Posted 系统

篇首语:天下无难事,只怕有心人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle(blockcleanout)的块清除相关的知识,希望对你有一定的参考价值。

Oracle(blockcleanout)的块清除  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Clean out有 种: fast mit cleanout

  delayed block cleanout

   如果一个事务(transaction)修改不超过 %buffer cache的数据块时 oracle做的是fast mit cleanout

   如果一个事务(transaction)修改的块超过 % buffer cache 那么 超过的块 就执行delayed block cleanout

   在事务mit前 修改的数据块已经写入硬盘 当发生mit时 oracle并不会把block重新读入内存来做cleanout 这样成本太高

  而是把cleanout留到下一次对此块的访问(select update)时完成

  下面我们来简单看一下这两种情况:

   搭建环境

   SQL> show parameter db_cache;   NAME TYPE VALUE          db_cache_size big integer 

   只需更改 M/ = M的数据量就会触发DELAY CLEAN OUT

   SQL> create table t  (id int  col  char( ) col  char( ) col  char( ) col  char( ));   

  表已创建

   行一个块

         SQL> insert into t  select object_id object_name  from all_objects where rownum <= ;   已创建 行   SQL> mit;   SQL> select * from (     select rownum rn  id dbms_rowid rowid_relative_fno(rowid)  file# dbms_rowid rowid_block_number(rowid)  block#  from t  )     where rn=  or rn= ;   RN ID file# block#                               fast clean out 快速块清除   SQL> update t  set id=id col =col col = c col = c col = c  where id= ;  第 块     ROWS UPDATED   SQL> select xidusn xidslot xidsqn ubafil ubablk ubarec from v$transaction;   XIDUSN XIDSLOT XIDSQN UBAFIL UBABLK UBAREC                             SQL> MIT;

  提交成功 

   SQL> alter system dump datafile   block  ;

  系统已更改

   Start dump data blocks tsn:   file#:   minblk   maxblk    buffer tsn:   rdba:  x  ( / )   scn:  x b db seq:  x  flg:  x  tail:  x db   frmt:  x  cval:  x  type:  x =trans data   Block header dump:  x   Object id on Block? Y   seg/obj:  x d csc:  x b db itc:   flg: E typ:     DATA   brn:   bdba:  x  ver:  x   inc:   exflg:    Itl Xid Uba Flag Lck Scn/Fsc    x   x a b   x a c a a C    scn  x b f    x   x a   x a cf a b     fsc  x   |   |

   这里的FLAG已经清除

   data_block_dump data header at  x   ===============   tsiz:  x f   hsiz:  x   pbl:  x   bdba:  x      flag=   ntab=   nrow=   frre=   fsbo= x   fseo= x d   avsp= x   tosp= x    xe:pti[ ] nrow=  offs=    x :pri[ ] offs= x d   block_row_dump:   tab   row   @ x d   tl:   fb:  H FL  lb:  x  cc:    col  : [  ] c   c  c   col  : [ ]    f                  f  f              f  d          d     c  f                                                                                                

   数据内容部分省略  

                                                     col  : [ ]                                                                                                                                                                                                                                                                       col  : [ ]                                                                                                              col  : [ ]                                                                                                              end_of_block_dump   End dump data blocks tsn:   file#:   minblk   maxblk     delay clean out 延时块清除   SQL> update t  set id=id col =col col = c col = c col = c ;  M的更新数据   已更新 行   SQL> select xidusn xidslot xidsqn ubafil ubablk ubarec from v$transaction;   XIDUSN XIDSLOT XIDSQN UBAFIL UBABLK UBAREC                             SQL> MIT;

  提交成功

   SQL> alter system dump datafile   block  ;  大于db_cache_size  %的块

  系统已更改

   SQL> alter system dump datafile   block  ;  小于db_cache_size  %的块

  系统已更改

    Start dump data blocks tsn:   file#:   minblk   maxblk      buffer tsn:   rdba:  x  ( / )    scn:  x b b  seq:  x  flg:  x  tail:  x b     frmt:  x  cval:  x  type:  x =trans data    Block header dump:  x     Object id on Block? Y    seg/obj:  x d csc:  x b db itc:   flg: E typ:     DATA    brn:   bdba:  x  ver:  x     inc:   exflg:      Itl Xid Uba Flag Lck Scn/Fsc     x   x a b   x a c a a C    scn  x b f     x   x d   x d   U    fsc  x b b     |    | 

   大于 %的块未被清除

     data_block_dump data header at  x   ===============   tsiz:  x f   hsiz:  x   pbl:  x   bdba:  x      flag=   ntab=   nrow=   frre=   fsbo= x   fseo= x d   avsp= x   tosp= x    xe:pti[ ] nrow=  offs=    x :pri[ ] offs= x d   block_row_dump:   tab   row   @ x d   tl:   fb:  H FL  lb:  x  cc:    col  : [  ] c   c  c   col  : [ ]    f                  f  f              f  d          d     c  f                                                                                                                                                           col  : [ ]                                                                                                                                                                 col  : [ ]                                                                                                                                                                 col  : [ ]                                                                                                                                                                 end_of_block_dump   End dump data blocks tsn:   file#:   minblk   maxblk    Start dump data blocks tsn:   file#:   minblk   maxblk    buffer tsn:   rdba:  x  ( / )   scn:  x b b d seq:  x  flg:  x  tail:  x b d   frmt:  x  cval:  x  type:  x =trans data   Block header dump:  x   Object id on Block? Y   seg/obj:  x d csc:  x b b d itc:   flg: E typ:     DATA   brn:   bdba:  x a ver:  x   inc:   exflg:    Itl Xid Uba Flag Lck Scn/Fsc    x   x a b   x a ce a a C    scn  x b f    x   x d   x a a  C    scn  x b b   |   |

   小于 %的块被清除

    data_block_dump data header at  x   ===============   tsiz:  x f   hsiz:  x   pbl:  x   bdba:  x      flag=   ntab=   nrow=   frre=   fsbo= x   fseo= x d   avsp= x   tosp= x    xe:pti[ ] nrow=  offs=    x :pri[ ] offs= x d   block_row_dump:   tab   row   @ x d   tl:   fb:  H FL  lb:  x  cc:    col  : [  ] c       col  : [ ]    f                  f            f  d    f  e    e                                                                                                                                                                                                                         col  : [ ]                                                                                                                                                                                                                    col  : [ ]                                                                                                                                                                                                                    col  : [ ]                                                                                                                                                                 end_of_block_dump   End dump data blocks tsn:   file#:   minblk   maxblk 

   再次访问这些块时 会被清除 

   SQL> set autot on   SQL> select count(*) from t ;   COUNT(*)         Execution Plan        SELECT STATEMENT Optimizer=CHOOSE       SORT (AGGREGATE)       TABLE ACCESS (FULL) OF  T   Statistics        recursive calls     db block gets     consistent gets     physical reads     redo size

   产生很多的REDO信息 用于块清除

      bytes sent via SQL*Net to client     bytes received via SQL*Net from client     SQL*Net roundtrips to/from client     sorts (memory)     sorts (disk)     rows processed   SQL> /   COUNT(*)         Execution Plan        SELECT STATEMENT Optimizer=CHOOSE       SORT (AGGREGATE)       TABLE ACCESS (FULL) OF  T   Statistics        recursive calls     db block gets     consistent gets     physical reads     redo size

   再访问就没有REDO了

      bytes sent via SQL*Net to client     bytes received via SQL*Net from client     SQL*Net roundtrips to/from client     sorts (memory)     sorts (disk)     rows processed

   再来看清除的数据块信息 

    SQL> alter system dump datafile   block  ;

  系统已更改   

   SQL> alter system dump datafile   block  ;

  系统已更改   

   Start dump data blocks tsn:   file#:   minblk   maxblk    buffer tsn:   rdba:  x  ( / )   scn:  x b  seq:  x  flg:  x  tail:  x   frmt:  x  cval:  x  type:  x =trans data   Block header dump:  x   Object id on Block? Y   seg/obj:  x d csc:  x b c a itc:   flg: E typ:     DATA   brn:   bdba:  x  ver:  x   inc:   exflg:    Itl Xid Uba Flag Lck Scn/Fsc    x   x d   x e  C    fsc  x b    x   x d   x d  C    scn  x b b   |   |

   大于 %的块也被清除成功 

    data_block_dump data header at  x   ===============   tsiz:  x f   hsiz:  x   pbl:  x   bdba:  x      flag=   ntab=   nrow=   frre=   fsbo= x   fseo= x d   avsp= x   tosp= x    xe:pti[ ] nrow=  offs=    x :pri[ ] offs= x d   block_row_dump:   tab   row   @ x d   tl:   fb:  H FL  lb:  x  cc:    col  : [  ] c   c  c   col  : [ ]    f                  f  f              f  d          d     c  f                                                                                                                                                           col  : [ ]                                                                                                                                                                 col  : [ ]                                                                                                                                                                 col  : [ ]                                                                                                              end_of_block_dump   End dump data blocks tsn:   file#:   minblk   maxblk    Start dump data blocks tsn:   file#:   minblk   maxblk    buffer tsn:   rdba:  x  ( / )   scn:  x b a seq:  x  flg:  x  tail:  x a   frmt:  x  cval:  x  type:  x =trans data   Block header dump:  x   Object id on Block? Y   seg/obj:  x d csc:  x b a itc:   flg: E typ:     DATA   brn:   bdba:  x a ver:  x   inc:   exflg:    Itl Xid Uba Flag Lck Scn/Fsc    x   x d   x ec  C    scn  x b    x   x d   x a a  C    scn  x b b   |   |

   小于 %的块不变 

cha138/Article/program/Oracle/201311/17960

相关参考

知识大全 数据结构考研分类复习真题 第八章 答案[5]

  .因为%+=所以和+=互为伙伴伙伴合并后首址为块大小为因为%+=所以所以首址大小为的块和首址大小为的块合并成为首址大小为的空闲块因为%+=其伙伴地址为=将其插入可利用空间表中回收后该伙伴系统的状态

知识大全 数据结构考研分类复习真题 第八章 答案[2]

  四.应用题  在伙伴系统中无论占用块或空闲块其大小均为的k(k为≥的正整数)次幂若内存容量为m则空闲块大小只能是…m由同一大块分裂而得的两个小块互称伙伴空间如内存大小为的块分裂成两个大小为的块只有

书法基础讲座(一)

书法,是一门研究汉字书写艺术的学问,也是对汉字书写结果的一种等级评价。尽管世界上其他民族的文字也有书法,但由于汉字用不同线条和结构组成的块形字来得复杂多变,所以汉字的书法有独特的鉴赏价值和艺术魅力。书

知识大全 如何编写排序菜单sort

  在要排序的块上建立whenmouseclicktrigger代码  :globalmouserecord:=:systemmouse_record;  :globalmouseitem:=:sys

夏天怎样保存鲜肉

(1)用浸过醋的湿布将鲜肉包起来,可保鲜一昼夜。  (2)将鲜肉煮熟,趁热放入熬过的猪油里,可保存较长时间。  (3)将鲜肉切成10厘米左右宽的块,在肉面上涂一层蜂蜜,用线串起挂在通风处,可存放一段时

拼图玩具有何特点?

拼图一般由硬纸块制成,适合3岁以上儿童使用。拼图玩具由数量不一的小快组成,每一小快上的图案不同,所拼出的图案也不同。玩具的外包装上有注明,不同的块数一般对应了不同的拼图难度。

知识大全 为什么

我被蚊子咬了会起很大的块,而且很长时间才能消退,我还特招蚊子虫类喜欢!为什么?蚊子触须上有感受温热、二氧化碳和乳酸的传感器,蚊子的六只腿上也分布有这种传感器。靠这种灵敏的传感器,蚊子能在几十米外感到人

冬季鱼塘生石灰使用注意事项

一、使用生石灰时,应选用新鲜的块灰,这种生石灰质量好,氧化钙含量高。如用陈灰,其有效成分明显降低,达不到防治鱼病效果。二、泼洒要及时,生石灰一旦用水溶解,形成石灰浆,就应立即使用,如化开时间过长,则消

冬季鱼塘生石灰使用注意事项

一、使用生石灰时,应选用新鲜的块灰,这种生石灰质量好,氧化钙含量高。如用陈灰,其有效成分明显降低,达不到防治鱼病效果。二、泼洒要及时,生石灰一旦用水溶解,形成石灰浆,就应立即使用,如化开时间过长,则消

黄腹鹨的外形、分布、习性、图谱及别名

♂(雄鸟);♀(雌鸟);juv.(幼鸟)黄腹鹨-外形描述描述:体型略小(15厘米)的褐色而满布纵纹的鹨。似树鹨但上体褐色浓重,胸及两胁纵纹浓密,颈侧具近黑色的块斑。初级飞羽及次级飞羽羽缘白色。罕见亚种