设为首页 收藏本站
查看: 274|回复: 0

[经验分享] Oracle进程相关的SQL脚本

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-3 09:13:32 | 显示全部楼层 |阅读模式
1、 求当前会话的SID,SERIAL#


select sid, serial# from v$session where audsid = sys_context('userenv', 'sessionid');

2、 查询session的OS进程ID


select p.spid "os thread", b.name "name-user", s.program, s.sid, s.serial#,s.osuser, s.machine

from v$process p, v$session s, v$bgprocess b

where p.addr = s.paddr  
and p.addr = b.paddr and (s.sid=&1 or p.spid=&1)  
union all  
select p.spid "os thread", s.username "name-user", s.program, s.sid,s.serial#, s.osuser, s.machine

from v$process p, v$session s

where p.addr = s.paddr  
and (s.sid=&1 or p.spid=&1)  
and s.username is not null;

3、根据sid查看对应连接正在运行的sql


select /*+ push_subq */  
command_type, sql_text, sharable_mem, persistent_mem, runtime_mem, sorts,  
version_count, loaded_versions, open_versions, users_opening, executions,  
users_executing, loads, first_load_time, invalidations, parse_calls,  
disk_reads, buffer_gets, rows_processed, sysdate start_time,  
sysdate finish_time, '>' || address sql_address, 'n' status  
from v$sqlarea  
where address = (select sql_address  
                 from v$session  
                 where sid = &sid );

4、查找object为哪些进程所用


select p.spid, s.sid, s.serial# serial_num, s.username user_name,a.type object_type, s.osuser os_user_name, a.owner,a.object object_name,  
decode(sign(48 - command), 1, to_char(command), 'action code #' || to_char(command)) action,  
p.program oracle_process, s.terminal terminal, s.program program,  
s.status session_status  
from v$session s, v$access a, v$process p  
where s.paddr = p.addr  
and s.type = 'user'  
and a.sid = s.sid  
and a.object = '&obj'  
order by s.username, s.osuser;

5、查看有哪些用户连接


select s.osuser os_user_name,  
decode(sign(48 - command),1,to_char(command),  
'action code #' || to_char(command)) action,  
p.program oracle_process, status session_status, s.terminal terminal,  
s.program program, s.username user_name,  
s.fixed_table_sequence activity_meter, '' query, 0 memory,  
0 max_memory, 0 cpu_usage, s.sid, s.serial# serial_num  
from v$session s, v$process p  
where s.paddr = p.addr  
and s.type = 'user'  
order by s.username, s.osuser

6、根据v.sid查看对应连接的资源占用等情况


select n.name, v.value, n.class, n.statistic#  
from v$statname n, v$sesstat v  
where v.sid = &sid  
and v.statistic# = n.statistic#  
order by n.class, n.statistic#

7、查询耗资源的进程(top session)


select s.schemaname schema_name,  
decode(sign(48 - command),  
1, to_char(command), 'action code #' || to_char(command)) action,  
status session_status, s.osuser os_user_name, s.sid, p.spid,  
s.serial# serial_num, nvl(s.username, '[oracle process]') user_name,  
s.terminal terminal, s.program program, st.value criteria_value  
from v$sesstat st, v$session s, v$process p  
where st.sid = s.sid  
and st.statistic# = to_number('38')  
and ('all' = 'all' or s.status = 'all')  
and p.addr = s.paddr  
order by st.value desc, p.spid asc, s.username asc, s.osuser asc;

8、查看锁(lock)情况

select /*+ rule */ls.osuser os_user_name, ls.username user_name,  
decode(ls.type,  
'rw', 'row wait enqueue lock', 'tm', 'dml enqueue lock',  
'tx', 'transaction enqueue lock', 'ul', 'user supplied lock')   
lock_type,o.object_name object,  
decode(ls.lmode,  
1, null, 2, 'row share', 3, 'row exclusive',  
4, 'share', 5, 'share row exclusive', 6, 'exclusive',null)   
lock_mode,o.owner, ls.sid, ls.serial# serial_num, ls.id1, ls.id2  
from sys.dba_objects o,  
(select s.osuser, s.username, l.type, l.lmode, s.sid, s.serial#, l.id1,l.id2  
from v$session s, v$lock l  
where s.sid = l.sid) ls  
where o.object_id = ls.id1  
and o.owner <> 'sys'  
order by o.owner, o.object_name;




9、查看等待(wait)情况


select ws.class, ws.count count, sum(ss.value) sum_value  
from v$waitstat ws, v$sysstat ss  
where ss.name in ('db block gets', 'consistent gets')  
group by ws.class, ws.count;




10、求process/session的状态


select p.pid, p.spid, s.program, s.sid, s.serial# from v$process p, v$session s where s.paddr = p.addr;

11、求谁阻塞了某个session(10g)


select sid, username, event, blocking_session, seconds_in_wait, wait_time from v$session where state in ('waiting') and wait_class != 'idle';

12、查会话的阻塞


select /*+ rule */lpad(' ', decode(l.xidusn, 0, 3, 0)) || l.oracle_username user_name,o.owner, o.object_name, s.sid, s.serial#  
from v$locked_object l, dba_objects o, v$session s  
where l.object_id = o.object_id  
and l.session_id = s.sid  
order by o.object_id, xidusn desc;

col username format a15  
col lock_level format a8  
col owner format a18  
col object_name format a32  
select /*+ rule */s.username,decode(l.type, 'tm', 'table lock', 'tx', 'row lock', null) lock_level,o.owner, o.object_name, s.sid, s.serial#  
from v$session s, v$lock l, dba_objects o  
where l.sid = s.sid  
and l.id1 = o.object_id(+)  
and s.username is not null;

13、求等待的事件及会话信息/求会话的等待及会话信息


select se.sid, s.username, se.event, se.total_waits, se.time_waited,se.average_wait  
from v$session s, v$session_event se  
where s.username is not null  
and se.sid = s.sid  
and s.status = 'active'  
and se.event not like '%sql*net%'  
order by s.username;

select s.sid, s.username, sw.event, sw.wait_time, sw.state,sw.seconds_in_wait  
from v$session s, v$session_wait sw  
where s.username is not null  
and sw.sid = s.sid  
and sw.event not like '%sql*net%'  
order by s.username;

14、求会话等待的file_id/block_id


col event format a24  
col p1text format a12  
col p2text format a12  
col p3text format a12  
select sid, event, p1text, p1, p2text, p2, p3text, p3  
from v$session_wait  
where event not like '%sql%'  
and event not like '%rdbms%'  
and event not like '%mon%'  
order by event;

select name, wait_time  
from v$latch l  
where exists (select 1  
from (select sid, event, p1text, p1, p2text, p2, p3text, p3  
from v$session_wait  
where event not like '%sql%'  
and event not like '%rdbms%'  
and event not like '%mon%') x  
where x.p1 = l.latch#);

15、求会话等待的对象


col owner format a18  
col segment_name format a32  
col segment_type format a32  
select owner, segment_name, segment_type  
from dba_extents  
where file_id = &file_id  
and &block_id between block_id and block_id + blocks - 1;

16、求出某个进程,并对它进行跟踪


select s.sid, s.serial#  
from v$session s, v$process p  
where s.paddr = p.addr  
and p.spid = &1;  
exec dbms_system.set_sql_trace_in_session(&1, &2, true);  
exec dbms_system.set_sql_trace_in_session(&1, &2, false);

17、求当前session的跟踪文件


select p1.value || '/' || p2.value || '_ora_' || p.spid || '.ora' filename   
from v$process p, v$session s, v$parameter p1, v$parameter p2  
where p1.name = 'user_dump_dest'  
and p2.name = 'instance_name'  
and p.addr = s.paddr  
and s.audsid = userenv('sessionid')  
and p.background is null  
and instr(p.program, 'cjq') = 0;




18、求出锁定的对象


select do.object_name, session_id, process, locked_mode from v$locked_object lo, dba_objects do where lo.object_id = do.object_id;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-24316-1-1.html 上篇帖子: 查找Oracle高消耗语句 下篇帖子: ORACLE的CONNECT和RESOURCE角色权限 Oracle
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表