watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

Q           The title is as follows :

stay Oracle in , How to quickly calculate transaction time and log volume ?

     

A           The answer is as follows :          

answer : The script is shown below :


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;