[Q]怎麼樣快速計算事務的時間與日誌量 zt

orchidllh發表於2005-03-15
[A]可以採用類似如下的指令碼
DECLARE  
   start_time NUMBER;
   end_time NUMBER;
   start_redo_size NUMBER;
   end_redo_size NUMBER;
BEGIN
   start_time := dbms_utility.get_time;
   SELECT VALUE INTO start_redo_size FROM v$mystat m,v$statname s  
              WHERE m.STATISTIC#=s.STATISTIC#
                 AND s.NAME='redo size';
   --transaction start
   INSERT INTO t1  
      SELECT * FROM All_Objects;   
   --other dml statement
   COMMIT;
   end_time := dbms_utility.get_time;
   SELECT VALUE INTO end_redo_size FROM v$mystat m,v$statname s  
              WHERE m.STATISTIC#=s.STATISTIC#
                 AND s.NAME='redo size';
   dbms_output.put_line('Escape Time:'||to_char(end_time-start_time)||' centiseconds');
   dbms_output.put_line('Redo Size:'||to_char(end_redo_size-start_redo_size)||' bytes');
END; 
  

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

相關文章