user rollbacks 與 transaction rollbacks 的區別

楊奇龍發表於2010-06-02

 

論壇上有個帖子

SQL>  select name,value from v$sysstat where name in ('user commits','user rollbacks');

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
user commits                                                         506661
user rollbacks                                                      1105228

SQL> select round(1105228/(1105228+506661),4)*100||'%' from dual;

ROUND(1105228/(1105228+506661)
------------------------------
68.57%

經分庫,這個high算正常嗎?基本沒不用delete操作,咋還這麼high呢?

v$sysstat中的 是計算的是每次rollback命令。 rollbacks只計算實際有transaction的rollback。

SQL> select name ,value from v$sysstat
  2  where name in
  3  ('user rollbacks','transaction rollbacks');

NAME                                                                  VALUE    
---------------------------------------------------------------- ----------    
user rollbacks                                                           23    
transaction rollbacks                                                     0    

SQL> delete from  scott.cust where rownum=1;

已刪除 1 行。

SQL> rollback;

回退已完成。

SQL> select name ,value from v$sysstat
  2  where name in
  3  ('user rollbacks','transaction rollbacks');

NAME                                                                  VALUE    
---------------------------------------------------------------- ----------    
user rollbacks                                                           24    
transaction rollbacks                                                     1    

SQL> rollback;

回退已完成。

SQL> rollback;

回退已完成。

SQL> select name ,value from v$sysstat
  2  where name in
  3  ('user rollbacks','transaction rollbacks');

NAME                                                                  VALUE    
---------------------------------------------------------------- ----------    
user rollbacks                                                           26    
transaction rollbacks                                                     1    

所以有時看到rollback回滾率值很大,有可能是不影響效能的,可能是某個應用頻繁的進行無意義的user rollback 造成的

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-664270/,如需轉載,請註明出處,否則將追究法律責任。

相關文章