透过Buffer cache了解data block在DML操作下的状态演变(5)


发现又多出了一行BA=0700000105276000,这行里
              FLAG:524288 换算成16进制后:0x80000(sequential scan only flag)
              STATE:3,表示buffer consistent read,表示后续对于block 5/60683的一致性读将会用到这一行,一个data block在buffer cache里可能会拥有多个consistent read 版本,后面也会谈及
              TCH:1,表示touch count为1


同时发现BA=07000001084A2000,这行里
              FLAG:35651585,转换成16进制0x2200001=0x2000000(Redo Generated since block read)+0x200000(Buffer has been written once)+0x0001(buffer dirty)


***之后再次查询发现BA=07000001084A2000,这行的FLAG又变回了35651584,转换成16进制0x2200001=0x2000000(Redo Generated since block read)+0x200000(Buffer has been written once)
SYS@tstdb1-SQL> select obj,indx,addr,hladdr,flag,lru_flag,class,state,dbarfil,dbablk,ba,tch from x$bh where obj=41231;


      OBJ      INDX ADDR            HLADDR                FLAG  LRU_FLAG      CLASS      STATE    DBARFIL    DBABLK BA                      TCH
---------- ---------- ---------------- ---------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------- ----------
    41231      31287 000000011099BA50 07000001B6B503D8  35651584          0          4          1          5      60682 070000014A920000          4
    41231    147573 000000011099BA50 07000001B6C811F8  35651584          0          9          1          5      60681 07000000F4010000          1
    41231    219340 000000011099BA50 07000001B6D3F4F0    524288          0          1          3          5      60683 0700000105276000          1
    41231    219341 000000011099B908 07000001B6D3F4F0  35651584          0          1          1          5      60683 07000001084A2000          1
    41231    219342 000000011099B7C0 07000001B6D3F4F0    524288          2          1          3          5      60683 0700000162014000          1
    41231    280283 000000011099BA50 07000001B6DB20E0  35651584          0          8          1          5      60680 0700000102904000          1   

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b53e281b6e4793f9b03652a9d50447ed.html