这个get_redo_size 用法
用例:
测试过程:
检测刚刚的过程有没有错误
比较二个过程 的redo
注:以前积累下来的,忘了从哪来的了
create or replace function get_redo_size
return number
as
l_redo_size number;
begin
select value
into l_redo_size
from v$mystat m, v$statname s
where s.name like 'redo size'
and m.statistic# = s.statistic#;
return l_redo_size;
end;
/
用例:
测试过程:
create or replace procedure single_stmt_insert
as
begin
insert into t1
select rownum
from all_objects, all_users
where rownum <= 100000;
end;
/
检测刚刚的过程有没有错误
show errors;比较二个过程 的redo
variable value number;
exec :value := get_redo_size;--执行的结果赋值给变量
exec single_stmt_insert
exec dbms_output.put_line( 'redo consumed = ' || (get_redo_size - :value) );--两次相减
exec :value := get_redo_size;--执行的结果赋值给变量
exec row_by_row
exec dbms_output.put_line( 'redo consumed = ' || (get_redo_size - :value) );--两次相减注:以前积累下来的,忘了从哪来的了
本文介绍了一个用于测量 Oracle 数据库 Redo 大小的 PL/SQL 函数 get_redo_size,通过该函数可以获取数据库重做日志的大小,并通过执行不同过程前后 redo 大小的变化来对比其产生的重做开销。

被折叠的 条评论
为什么被折叠?



