如何查询占用系统资源较高的进程及系统进程对应的sql语句及会话id的方法 如何查询占用系统资源较高的进程及系统进程对应的sql语句及会话id的方法 查询占用数据库cpu资源使用率较高进程信息 ps -e -o pcpu,pid,user,tty,args | sort -n -k 1 -r | head 查询占用数据库内存资源使用率较高的Oracle进程信息 ps -e -o pmem,pid,user,tty,args | grep -i oracle | sort -n -k 1-r | head 当然,还可以利用top、vmstat、sar等其他方式定位占用资源比较高的进程及其id,查询到系统进程id后,便可以通过以下语句查询其在数据库中对应的会话id及其sql语句。 SELECT sql_id,sql_text FROM v$sqltext a WHERE a.hash_value=(SELECT sql_hash_value FROM v$session b,v$process c WHERE b.paddr=c.addr AND c.spid=&pid) ORDER BY piece ASC ; 直接粘贴在sql命令行运行,输入相应的操作系统进程id即可。 进一步可以根据以上查询到的sql_id,来查询详细的sql执行计划,详细分析问题出现的原因。 SELECT * FROM TABLE(dbms_xplan.display_awr('&sql_id'));
