Oracle 根据操作系统进程号查看会话

我想,根据操作系统进程号查看oracle对应的SQL语句内容,这一需求对sql优化有一定作用,今天整理了一下。

1、  先用ps -aux查询,发现有个进程占用大量CPU,记录下PID

2、查看哪个会话在执行什么SQL语句,进程号是多少:

2.1 查看所有会话对应的sql
SELECT c.spid,b.sql_text, a.sid, a.serial#, osuser, machine  
    FROM v$session a, v$sqlarea b ,v$process c
    WHERE a.sql_address = b.address and a.paddr=c.addr; 

2.2 查看某个会话对应的sql内容
SELECT c.spid,b.sql_text, a.sid, a.serial#, osuser, machine  
    FROM v$session a, v$sqlarea b ,v$process c
    WHERE a.sql_address = b.address and a.paddr=c.addr and spid=&pid; 
 
3、 用语句select * from v$session_wait where sid=  就能查出等待事件是什么。


4、top -d pid可以观察某个进程的时时状态

猜你喜欢

转载自blog.csdn.net/gaobudong1234/article/details/82107511