自定義統計結果指令碼mystat

eric0435發表於2013-08-27
mystat.sql和相應的mystat2.sql用於展示完成某操作之前和之後的某些Oracle“統計結果”的變化情況。mystat.sql只是獲得統 計結果的開始值:
set echo off
set verify off
column value new_val V
define S="&1"
set autotrace off
select a.name, b.value
from v$statname a, v$mystat b
where a.statistic# = b.statistic#
and lower(a.name) like '%' || lower('&S')||'%'
/
set echo on


mystat2.sql用於報告統計結果的變化情況(差值):
set echo off
set verify off
select a.name, b.value V, to_char(b.value-&V,'999,999,999,999') diff
from v$statname a, v$mystat b
where a.statistic# = b.statistic#
and lower(a.name) like '%' || lower('&S')||'%'
/
set echo on

例如,要檢視某個UPDATE生成的redo數,可以使用以下命令:
sys@DEVELOP> @/oracle/product/11.2/sqlplus/mystat.sql "redo size"

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
redo size                                                         756293676
redo size for lost write detection                                        0
redo size for direct writes                                               0

sys@DEVELOP> update t1 set aac009='1';

795680 rows updated.

sys@DEVELOP> @/oracle/product/11.2/sqlplus/mystat2.sql

NAME                                                                      V DIFF
---------------------------------------------------------------- ---------- ----------------
redo size                                                        1139306496    1,139,306,496
redo size for lost write detection                                        0                0
redo size for direct writes                                               0                0


由此可見,795,680行記錄的UPDATE會生成1,139,306,496位元組的redo.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-769311/,如需轉載,請註明出處,否則將追究法律責任。

相關文章