如何测量redo

又是违规昵称 2009-08-29 01:20:50
【脚本摘自大师tom 转载请注明作者】
【如有问题请联系lpc19598188@gmail.com 欢迎指教】

对于一名数据库开发人员来说,清楚地知道自己的语句的性能是非常重要的。本文提供脚本可以对sql语句生成的redo进行测量

--创建测试表
SQL> create table t2 as select * from emp;

Table created

-- 在执行要测量的sql前先执行下面的语句,在提示输入中输入redo size
SQL> set verify off
SQL> column value new_val V
SQL> define S="&1"
SQL> set autotrace off
Cannot SET AUTOTRACE
SQL> select a.name, b.value
2 from v$statname a, v$mystat b
3 where a.statistic# = b.statistic#
4 and lower(a.name) like '%' || lower('&S')||'%'
5 /

NAME VALUE
---------------------------------------------------------------- ----------
redo size 17124

--执行被测量的sql语句
SQL> update t2 set empno = rownum;

15 rows updated

--看一下commit前的情况

SQL> set verify off
SQL> select a.name, b.value V, to_char(b.value-&V,'999,999,999,999') diff
2 from v$statname a, v$mystat b
3 where a.statistic# = b.statistic#
4 and lower(a.name) like '%' || lower('&S')||'%'
5 /

NAME V DIFF
---------------------------------------------------------------- ---------- ----------------
redo size 17124 0

SQL>
SQL>
SQL> commit;

Commit complete

--commit后有结论了:
SQL> set verify off
SQL> select a.name, b.value V, to_char(b.value-&V,'999,999,999,999') diff
2 from v$statname a, v$mystat b
3 where a.statistic# = b.statistic#
4 and lower(a.name) like '%' || lower('&S')||'%'
5 /

NAME V DIFF
---------------------------------------------------------------- ---------- ----------------
redo size 20908 3,784

SQL>
...全文
143 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xeppp 2011-06-07
  • 打赏
  • 举报
回复
&V 从哪里来的?
tiancx82 2009-08-30
  • 打赏
  • 举报
回复
感谢楼主,收藏
wh62592855 2009-08-30
  • 打赏
  • 举报
回复
谁能告诉我怎么看一条语句产生的UNDO数量
inthirties 2009-08-29
  • 打赏
  • 举报
回复
顶,学习
Dave 2009-08-29
  • 打赏
  • 举报
回复
好东东,收藏了. Thx

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧