小议Oracle 11g的自治事务(六)(4)

日期: 2008-08-11 来源:TechTarget中国 英文

  opened cursors cumulative -2


  recursive calls -32


  recursive cpu usage 5


  session logical reads -7


  CPU used by this session 1


  enqueue requests -2


  enqueue releases -3


  db block gets -3


  db block gets from cache -3


  consistent gets -4


  consistent gets from cache -4


  consistent gets – examination 1


  db block changes -3


  consistent changes 4


  change write time -2


  free buffer requested -23


  commit cleanout failures: block lost -2


  commit cleanouts -1


  commit cleanouts successfully completed 1


  calls to kcmgcs -5


  calls to kcmgas -16


  calls to get snapshot scn: kcmgss -4


  redo entries -84


  redo size -2464


  redo ordering marks -16


  undo change vector size -104


  no work – consistent read gets -3


  deferred (CURRENT) block cleanout applications -5


  commit txn count during cleanout 1


  active txn count during cleanout 2


  cleanout – number of ktugct calls 2


  IMU undo allocation size 24648


  IMU Redo allocation size 31200


  table scans (short tables) -1


  table scan rows gotten -16


  table scan blocks gotten -2


  cluster key scans -1


  cluster key scan block gets -1


  index fetch by key -1


  heap block compress -7


  session cursor cache hits -1


  buffer is not pinned count -1


  parse count (total) -2


  &#101xecute count -2


  PL/SQL 过程已成功完成。


  IMU是10g的IN MEMORY UNDO的缩写,这个值比较大主要是由于前面进行了delete,后面又插入相同的数据,因此Oracle采用了IMU操作。抛去这个因素,其他的差异于事务本身代价相比就小得多了:







SQL> truncate TABLE T_SESSION_STAT; 

  表被截断。 







SQL> BEGIN 
  2 
  3 insert INTO T_SESSION_STAT select 1, NAME, VALUE 
  4 FROM V$SESSTAT A, V$STATNAME B 
  5 where A.STATISTIC# = B.STATISTIC# 
  6 AND A.SID = (select SID FROM V$MYSTAT where ROWNUM = 1); 
  7 
  8 P_TEST_AUTO; 
  9 
  10 insert INTO T_SESSION_STAT select 2, NAME, VALUE 
  11 FROM V$SESSTAT A, V$STATNAME B 
  12 where A.STATISTIC# = B.STATISTIC# 
  13 AND A.SID = (select SID FROM V$MYSTAT where ROWNUM = 1); 
  14 
  15 FOR C IN 
  16 ( 
  17 select * 
  18 FROM 
  19 ( 
  20 select A.NAME, B.VALUE – A.VALUE VALUE 
  21 FROM 
  22 T_SESSION_STAT A, 
  23 T_SESSION_STAT B 
  24 where A.NAME = B.NAME 
  25 AND A.ID = 1 
  26 AND B.ID = 2 
  27 ) 
  28 where ABS(VALUE) > 1000 
  29 ) LOOP 
  30 DBMS_OUTPUT.PUT_LINE(RPAD(C.NAME, 50, ’ ’) || C.VALUE); 
  31 END LOOP; 
  32 
  33 END; 
  34 / 


  recursive calls 10182


  session logical reads 10602


  db block gets 10492


  db block gets from cache 10492


  db block changes 20293


  redo entries 10124


  redo size 2461664


  undo change vector size 642896


  IMU undo allocation size 12060


  IMU Redo allocation size 15200


  &#101xecute count 10017


  PL/SQL 过程已成功完成。


  可见,自治事务所带来的额外的代价很小,基本上可以不用过多的考虑。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐