Eygle的《深入解析Oracle-DBA 入門、進階與診斷案例》——指令碼整理

super_sky發表於2011-08-19
前一段時間,看了Eygle的《深入解析Oracle-DBA 入門、進階與診斷案例》一書,使自己受益匪淺。在書中出現了一些呼叫指令碼,有的指令碼在書中沒有給出,可能會導致看書時不明白,我這裡把我整理的指令碼貢獻出來,希望大家一起學習。

指令碼涉及:gethidpar.sql 獲取隱含引數
                    gettrcname.sql 獲取當前trace檔名稱
                    getplan.sql  獲取sql語句的執行計劃,通過v$sql_plan檢視。

gethidpar.sql內容如下:

set linesize 120
col name for a30
col value for a20
col describ for a60

select x.ksppinm name, y.ksppstvl value, x.ksppdesc describ
from sys.x$ksppi x,sys.x$ksppcv y
where x.indx = y.indx
and x.ksppinm like '%&par%'

/

gettrcname.sql 內容如下:
select
a.value || b.symbol || c.instance_name || '_ora_'  || d.spid || '.trc' trace_file_name
from (select value from v$parameter where name = 'user_dump_dest')a,
(select substr(value,-6,1) symbol from v$parameter where name = 'user_dump_dest') b,
(select instance_name from v$instance) c,
(select spid from v$session s,v$process p,v$mystat m where s.paddr = p.addr and s.sid = m.sid and m.statistic#=0) d

/

getplan.sql 內容如下:
set linesize 120
col operation format a55
col cost format 99999
col kbytes format 999999
col object format a25

select hash_value,child_number,
lpad(' ',2*depth) || operation || ' ' || options || decode(id,0,substr(optimizer,1,6) || 'Cost=' || to_char(cost)) operation,
object_name object,
cost,
round(bytes/1024) kbytes
from v$sql_plan
where hash_value in (
    select a.sql_hash_value from v$session a,v$session_wait b
    where a.sid = b.sid and b.event = '&waitevent')
order by hash_value,child_number,id;
 
/


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

相關文章