【DB笔试面试208】在Oracle中,如何快速计算事务的时间与日志量?

【DB笔试面试208】在Oracle中,如何快速计算事务的时间与日志量?

【DB笔试面试208】在Oracle中,如何快速计算事务的时间与日志量?


Q          题目如下所示:

在Oracle中,如何快速计算事务的时间与日志量?


     
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;


     


上一篇:Java序列化和反序列化网络编程,详解系列文章


下一篇:【DB笔试面试756】在Oracle的DG中,有哪些重要的参数,它们分别代表什么含义?...