当前session生成redo,undo大小,统计信息,以及表的大小

计算SQL语句生成redo,undo大小,以及表的大小

--redo,undo

select name, value
  from v$mystat, v$statname
 where v$mystat.statistic# = v$statname.statistic#
   and (v$statname.name = 'redo size' or
       v$statname.name = 'undo change vector size');

--测量session的redo

在执行语句前和后执行,然后相减

select  value
 from v$mystat, v$statname
where v$mystat.statistic# =v$statname.statistic#
   and v$statname.name ='redo size';

--测量dmp导入的redo(不过这个最后在测试环境下做,生产环境下可能不准)

select  value
 from v$sysstat, v$statname
where v$sysstat.statistic# =v$statname.statistic#
   and v$statname.name ='redo size';

用这个存储过程就方便很多

create or replace procedure measure_redo( p_sql in varchar2 )
  as
      l_start_redo    number;
      l_redo            number;
  begin
      select a.value
        into l_start_redo
        from v$mystat a, v$statname b
       where a.statistic# = b.statistic#
         and b.name = 'redo size';

      execute immediate p_sql;
      commit;

      select a.value-l_start_redo
        into l_redo
        from v$mystat a, v$statname b
       where a.statistic# = b.statistic#
         and b.name = 'redo size';

      dbms_output.put_line
      ( to_char(l_redo,'9,999,999') ||' bytes of redo generated for "' ||
        substr( replace( p_sql, chr(10), ' '), 1, 25 ) || '"...' );
  end;

--undo

select  sid from v$mystat whererownum=1;
selectvalue  "undo change vector size"
    from v$statname a, v$sesstat b
    where a.statistic# = b.statistic#
    and a.name ='undo change vector size'  and b.sid ='956'

--session

SELECT vm.sid, vs.name, vm.VALUE  
  FROM v$mystat vm, v$sysstat vs  
 WHERE     vm.statistic# = vs.statistic#  
       AND vs.name IN  
              ('cleanouts only - consistent read gets',  
              'session logical reads',  
               'physical reads',  
               'physical reads direct',  
               'redo size'); 

 --表的大小

select s.bytes/1024/1024
from user_segments s
where segment_type ='TABLE'and segment_name='PUB_DEPARTMENT';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值