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

###回到session 1查询
session 1:
SYS@tstdb1-SQL> select * from scott.t1118_1 where username='SYS';
                                                               
USERNAME                          USER_ID CREATED               
------------------------------ ---------- -----------------     
SYS                                  100 20141110 21:16:12     


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      31290 000000011099BA50 07000001B6B503D8  35651584          0          4          1          5      60682 070000014A920000          5
    41231    147591 000000011099BA50 07000001B6C811F8  35651584          0          9          1          5      60681 07000000F4010000          1
    41231    219366 000000011099BA50 07000001B6D3F4F0    524288          0          1          3          5      60683 0700000105276000          1
    41231    219367 000000011099B908 07000001B6D3F4F0  35651584          0          1          1          5      60683 07000001084A2000          2
    41231    219368 000000011099B7C0 07000001B6D3F4F0    524288          2          1          3          5      60683 0700000162014000          1
    41231    280295 000000011099BA50 07000001B6DB20E0  35651584          0          8          1          5      60680 0700000102904000          1


BA=07000001084A2000,这行里
              TCH:2,比原来增加了1
              STATE:1,表示Exclusive current,因为查询的是自己修改后的尚未提交的内容


###将session 1回滚
---session 1:
SYS@tstdb1-SQL> rollback;


Rollback complete.


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      31374 000000011099DB50 07000001B6B503D8  35651584          0          4          1          5      60682 070000014A920000          5
    41231    148007 000000011099DB50 07000001B6C811F8  35651584          0          9          1          5      60681 07000000F4010000          1
    41231    219991 000000011099DB50 07000001B6D3F4F0    524288          0          1          3          5      60683 0700000105276000          1
    41231    219992 000000011099DA08 07000001B6D3F4F0  35651584          0          1          1          5      60683 07000001084A2000          3
    41231    219993 000000011099D8C0 07000001B6D3F4F0    524288          2          1          3          5      60683 0700000162014000          1
    41231    280351 000000011099DB50 07000001B6DB20E0  35651584          0          8          1          5      60680 0700000102904000          1             


回滚后BA=07000001084A2000所在行,
              TCH:3,比原来增加了1


###再次发起scott.t1118_1表的查询
SYS@tstdb1-SQL> select * from scott.t1118_1 where username='SYS';

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

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