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用于報告統計結果的變化情況(內插補點):
select a.name, b.value v, to_char(b.value-&v,'999,999,999,999') diff
例如,要檢視某個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.