今日系统要升级,需要对所有的应用程序,进行TRACE 。
在应用系统里面有个里面有个程序CONTROL table :proc_control , 记录每个程序的SID,SERIAL#,可以方便的多特定的程序进行TRACE , 这个在应用设计的过程中
可以学习借鉴的地方。
但是很多程序同时产生TRACE 文件, 对管理员来说不是很好对应程序和TRACE 文件, 于是通过强大的GOOGLE 发现了如下的解决方法。
在此记录一下, 以备后用。
select a.sid, a.proc_name,b.trace_file_name
from (select trim(both ',' from (substr(sys_proc_id,1,3))) sid ,proc_name from proc_control) a,
(SELECT s.sid,
s.server,
lower(
CASE
WHEN s.server IN ('DEDICATED','SHARED') THEN
i.instance_name || '_' ||
nvl(pp.server_name, nvl(ss.name, 'ora')) || '_' ||
p.spid || '.trc'
ELSE NULL
END
) AS trace_file_name
FROM v$instance i,
v$session s,
v$process p,
v$px_process pp,
v$shared_server ss
WHERE s.paddr = p.addr
AND s.sid = pp.sid (+)
AND s.paddr = ss.paddr(+)
AND s.type = 'USER'
ORDER BY s.sid) b
where a.sid=b.sid ;
在应用系统里面有个里面有个程序CONTROL table :proc_control , 记录每个程序的SID,SERIAL#,可以方便的多特定的程序进行TRACE , 这个在应用设计的过程中
可以学习借鉴的地方。
但是很多程序同时产生TRACE 文件, 对管理员来说不是很好对应程序和TRACE 文件, 于是通过强大的GOOGLE 发现了如下的解决方法。
在此记录一下, 以备后用。
select a.sid, a.proc_name,b.trace_file_name
from (select trim(both ',' from (substr(sys_proc_id,1,3))) sid ,proc_name from proc_control) a,
(SELECT s.sid,
s.server,
lower(
CASE
WHEN s.server IN ('DEDICATED','SHARED') THEN
i.instance_name || '_' ||
nvl(pp.server_name, nvl(ss.name, 'ora')) || '_' ||
p.spid || '.trc'
ELSE NULL
END
) AS trace_file_name
FROM v$instance i,
v$session s,
v$process p,
v$px_process pp,
v$shared_server ss
WHERE s.paddr = p.addr
AND s.sid = pp.sid (+)
AND s.paddr = ss.paddr(+)
AND s.type = 'USER'
ORDER BY s.sid) b
where a.sid=b.sid ;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/3637/viewspace-677235/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/3637/viewspace-677235/