Eygle的《深入解析Oracle-DBA 入门、进阶与诊断案例》——脚本整理

来源:互联网 发布:自动聊天软件下载 编辑:程序博客网 时间:2024/04/28 10:20

Eygle的《深入解析Oracle-DBA 入门、进阶与诊断案例》——脚本整理


前一段时间,看了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;
 
/
原创粉丝点击