对consistent get,始终不太理解。看了
http://www.itpub.net/viewthread. ... p;extra=&page=1,概念上清楚了一些,但是对consistent get 具体包括哪些读,get计数的计算公式还是不太明白。
-------------------------------------------------------------------------------------------------------------------------
SQL> alter session set events '10200 trace name context forever,level 1';
Session altered.
SQL> select * from t8;
C ID
-------- ----------
az 1330
by 1331
Candy 1332
Deskbook 1333
EggReady 1334
finefine 1335
aaa 32
aaa 33
8 rows selected.
SQL> alter session set events '10200 trace name context off';
Session altered.
---------------------------------------------------------------------------------------------------------------
Dump file f

racleadmin estdbudump est_ora_1464.trc
Fri Jun 27 11:38:13 2008
ORACLE V9.2.0.1.0 - Production vsnsta=0
vsnsql=12 vsnxtr=3
Windows 2000 Version 5.1 Service Pack 2, CPU type 586
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
Windows 2000 Version 5.1 Service Pack 2, CPU type 586
Instance name: test
Redo thread mounted by this instance: 1
Oracle process number: 12
Windows thread id: 1464, image: ORACLE.EXE
*** 2008-06-27 11:38:13.000
*** SESSION ID

9.7) 2008-06-27 11:38:13.000
Consistent read started for block 6 : 01800014
env: (scn: 0x0000.00678f54 xid: 0x0000.000.00000000 uba: 0x00000000.0000.00 statement num=0 parent xid: xid: 0x0000.000.00000000 scn: 0x0000.00000000 0sch: scn: 0x0000.00000000)
CR exa ret 9 on: 01FEE950 scn: 0xffff.ffffffff xid: 0x0000.000.00000000 uba: 0x00000000.0000.00 scn: 0xffff.ffffffff sfl: 0
Consistent read finished for block 6 : 1800014
Consistent read finished for block 6 : 1800014
Consistent read started for block 6 : 01800014
env: (scn: 0x0000.00678f54 xid: 0x0000.000.00000000 uba: 0x00000000.0000.00 statement num=0 parent xid: xid: 0x0000.000.00000000 scn: 0x0000.00000000 0sch: scn: 0x0000.00000000)
CR exa ret 9 on: 01FEE950 scn: 0xffff.ffffffff xid: 0x0000.000.00000000 uba: 0x00000000.0000.00 scn: 0xffff.ffffffff sfl: 0
Consistent read finished for block 6 : 1800014
Consistent read finished for block 6 : 1800014
Consistent read started for block 6 : 01800015
env: (scn: 0x0000.00678f54 xid: 0x0000.000.00000000 uba: 0x00000000.0000.00 statement num=0 parent xid: xid: 0x0000.000.00000000 scn: 0x0000.00000000 0sch: scn: 0x0000.00000000)
CR exa ret 9 on: 01FEE950 scn: 0xffff.ffffffff xid: 0x0000.000.00000000 uba: 0x00000000.0000.00 scn: 0xffff.ffffffff sfl: 0
Consistent read finished for block 6 : 1800015
Consistent read finished for block 6 : 1800015
Consistent read started for block 6 : 01800016
env: (scn: 0x0000.00678f54 xid: 0x0000.000.00000000 uba: 0x00000000.0000.00 statement num=0 parent xid: xid: 0x0000.000.00000000 scn: 0x0000.00000000 0sch: scn: 0x0000.00000000)
CR exa ret 9 on: 01FEE950 scn: 0xffff.ffffffff xid: 0x0000.000.00000000 uba: 0x00000000.0000.00 scn: 0xffff.ffffffff sfl: 0
Consistent read finished for block 6 : 1800016
Consistent read finished for block 6 : 1800016
Consistent read started for block 6 : 01800017
env: (scn: 0x0000.00678f54 xid: 0x0000.000.00000000 uba: 0x00000000.0000.00 statement num=0 parent xid: xid: 0x0000.000.00000000 scn: 0x0000.00000000 0sch: scn: 0x0000.00000000)
CR exa ret 9 on: 01FEE950 scn: 0xffff.ffffffff xid: 0x0000.000.00000000 uba: 0x00000000.0000.00 scn: 0xffff.ffffffff sfl: 0
Consistent read finished for block 6 : 1800017
Consistent read finished for block 6 : 1800017
Consistent read started for block 6 : 01800018
env: (scn: 0x0000.00678f54 xid: 0x0000.000.00000000 uba: 0x00000000.0000.00 statement num=0 parent xid: xid: 0x0000.000.00000000 scn: 0x0000.00000000 0sch: scn: 0x0000.00000000)
CR exa ret 9 on: 01FEE950 scn: 0xffff.ffffffff xid: 0x0000.000.00000000 uba: 0x00000000.0000.00 scn: 0xffff.ffffffff sfl: 0
Consistent read finished for block 6 : 1800018
Consistent read finished for block 6 : 1800018
------------------------------------------------------------------------------------------------------------------------------------------------
SQL> set autot trace
SQL> select * from t8;
8 rows selected.
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=11 Bytes=88)
1 0 TABLE ACCESS (FULL) OF 'T8' (Cost=2 Card=11 Bytes=88)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
8 consistent gets
0 physical reads
0 redo size
554 bytes sent via SQL*Net to client
503 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
8 rows processed
SQL> set autot off
SQL> select id,dbms_rowid.rowid_relative_fno(rowid) file#,
2 dbms_rowid.rowid_block_number(rowid) block#,
3 dbms_rowid.rowid_row_number(rowid) row#
4 from t8;
ID FILE# BLOCK# ROW#
---------- ---------- ---------- ----------
1330 6 20 4
1331 6 20 5
1332 6 20 6
1333 6 20 7
1334 6 20 8
1335 6 20 9
32 6 22 0
33 6 22 1
疑问:从trace看,这个查询要8个consistent get。但是在dump里看,似乎只有6个?我对这个10200事件也不太懂。8个consistent get是怎么计算出来的?consistent gets=blocks+rownum/arraysize这个公式成立吗?