多出了一行对应block 5/60683,这行对应的是data block
FLAG:524288 换算成16进制后:0x80000(sequential scan only flag)
CLASS: 1, 表示data block
STATE:1,表示Execlusive current
TCH: 1,表示Touch count
同时注意到block 5/60682这行的TCH增加到了2,因为扫描表的时候必然先要访问segment header
###对表T1118_1做update,先不提交
---session 1:
SYS@tstdb1-SQL> update scott.t1118_1 set user_id=100 where username='SYS';
1 row updated.
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 31275 000000011099C328 07000001B6B503D8 35651584 0 4 1 5 60682 070000014A920000 3
41231 147533 000000011099C328 07000001B6C811F8 35651584 0 9 1 5 60681 07000000F4010000 1
41231 219283 000000011099C328 07000001B6D3F4F0 33554433 0 1 1 5 60683 07000001084A2000 1
41231 219284 000000011099C1E0 07000001B6D3F4F0 524288 2 1 3 5 60683 0700000162014000 1
41231 280262 000000011099C328 07000001B6DB20E0 35651584 0 8 1 5 60680 0700000102904000 1
(因为BA表示block在内存中的物理地址,所以后续以BA来标示某一行)
新增一行BA=07000001084A2000,这行里
FLAG:33554433,换算成16进制:0x2000001=0x200000(Buffer has been written once)+0x00001(buffer dirty)
CLASS:1, 表示data block
STATE:1,表示Exclusive current
TCH: 1,表示Touch count
同时注意到BA=0700000162014000,这行里
LRU_FLAG:2,表示moved to tail of lru,放到了LRU的最末端,因为截止目前block 5/60683已经被扫描了两次(一次是在select时,一次是在update时)
STATE:3,表示buffer consistant read,数据库块被修改前会先复制一份consistent read的版本