ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 占用系统资源较高的进程及系统进程对应的sql语句及会话id的方法

占用系统资源较高的进程及系统进程对应的sql语句及会话id的方法

原创 Linux操作系统 作者:businessqaz 时间:2021-03-01 21:05:38 0 删除 编辑

查询占用数据库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'));

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69995495/viewspace-2760402/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2021-03-01

  • 博文量
    27
  • 访问量
    9499