[20190124]系统表空间块ITL的LCK.txt

来源:这里教程网 时间:2026-03-03 12:54:26 作者:

[20190124]系统表空间块ITL的LCK.txt --//一般数据块的ITL的Lck记录的是影响的记录数,但是如果是系统表空间的数据块呢? 1.环境: SYSTEM@book> @ ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production SYSTEM@book> create table t as select rownum id,'Test' name from dual connect by level<=4; Table created. SYSTEM@book> select rowid,t.* from t; ROWID                      ID NAME ------------------ ---------- -------------------- AAAWPnAABAAAAnpAAA          1 Test AAAWPnAABAAAAnpAAB          2 Test AAAWPnAABAAAAnpAAC          3 Test AAAWPnAABAAAAnpAAD          4 Test SYSTEM@book> @ rowid AAAWPnAABAAAAnpAAA     OBJECT       FILE      BLOCK        ROW ROWID_DBA            DBA                  TEXT ---------- ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------      91111          1       2537          0   0x4009E9           1,2537               alter system dump datafile 1 block 2537 SYSTEM@book> delete from t where id in 1; 1 row deleted. SYSTEM@book> commit ; Commit complete. SYSTEM@book> alter system flush buffer_cache; System altered. SYSTEM@book> alter system dump datafile 1 block 2537; System altered. Block header dump:  0x004009e9  Object id on Block? Y  seg/obj: 0x163e7  csc: 0x03.17748be1  itc: 3  flg: O  typ: 1 - DATA      fsl: 2  fnx: 0x0 ver: 0x01  Itl           Xid                  Uba         Flag  Lck        Scn/Fsc 0x01   0xffff.000.00000000  0x00000000.0000.00  C---    0  scn 0x0003.17748be1 0x02   0x0003.01c.00000735  0x00c005a9.0429.35  --U-    2  fsc 0x0009.17748c3c ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0x03   0x0000.000.00000000  0x00000000.0000.00  ----    0  fsc 0x0000.00000000 --//我明明删除1条记录,而LCK记录的数量是2,为什么? SYSTEM@book> delete from t where id in 2; 1 row deleted. SYSTEM@book> commit ; Commit complete. SYSTEM@book> alter system flush buffer_cache; System altered. SYSTEM@book> alter system dump datafile 1 block 2537; System altered. Block header dump:  0x004009e9  Object id on Block? Y  seg/obj: 0x163e7  csc: 0x03.17748be1  itc: 3  flg: O  typ: 1 - DATA      fsl: 2  fnx: 0x0 ver: 0x01  Itl           Xid                  Uba         Flag  Lck        Scn/Fsc 0x01   0xffff.000.00000000  0x00000000.0000.00  C---    0  scn 0x0003.17748be1 0x02   0x0003.01c.00000735  0x00c005a9.0429.35  --U-    2  fsc 0x0009.17748c3c 0x03   0x000a.017.00005831  0x00c001a7.10d6.11  --U-    1  fsc 0x0009.17748d2f --//这次对了,为什么第1次会出现这样的情况呢? --//如果重复测试,我删除4条记录. SYSTEM@book> create table t as select rownum id,'Test' name from dual connect by level<=4; Table created. SYSTEM@book> delete from t ; 4 rows deleted. SYSTEM@book> commit ; Commit complete. SYSTEM@book> alter system flush buffer_cache; System altered. SYSTEM@book> alter system dump datafile 1 block 2537; System altered. Block header dump:  0x004009e9  Object id on Block? Y  seg/obj: 0x163ec  csc: 0x03.1774915d  itc: 3  flg: O  typ: 1 - DATA      fsl: 2  fnx: 0x0 ver: 0x01  Itl           Xid                  Uba         Flag  Lck        Scn/Fsc 0x01   0xffff.000.00000000  0x00000000.0000.00  C---    0  scn 0x0003.1774915d 0x02   0x0002.01c.0000073d  0x00c004fd.0288.2f  --U-    5  fsc 0x0024.1774916f ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0x03   0x0000.000.00000000  0x00000000.0000.00  ----    0  fsc 0x0000.00000000 --//我做了多次测试,仅仅发现delete时LCK第一次数量比实际多1次.为什么? --//如果用户的表空间就不存在这样的问题.那位解析看看.不理解.

相关推荐