可以
AIX:
#!/bin/bash
ps -e -o pCPU -o pid -o user -o args | grep Oracle | sort -k 1| tail -5r
spid=`ps -e -o pcpu -o pid -o user -o args | grep oracle | sort -k 1| tail -5r | awk '{print $2}'`
for i in $spid
do
sqlplus -S /nolog << EOF
conn / as sysdba
set feedback off
set linesize 200
set pagesize 70
column spid format 99999
column sid format 99999
column module format a20
column username format a8
column sql_text format a60
select distinct c.spid,b.sid,b.username,
a.module,a.hash_value,sql_text
from v\$sql a,v\$session b,v\$process c
where a.hash_value=b.sql_hash_value and
a.address=b.sql_address and b.paddr=c.addr and c.spid =$i;
exit
EOF
done
LINUX:
#!/bin/bash
ps -e -o pCPU -o pid -o user -o args | grep Oracle | sort -k 1| tail -5
spid=`ps -e -o pcpu -o pid -o user -o args | grep oracle | sort -k 1| tail -5 | awk '{print $2}'`
for i in $spid
do
sqlplus -S /nolog << EOF
conn / as sysdba
set feedback off
set linesize 200
set pagesize 70
column spid format 99999
column sid format 99999
column module format a20
column username format a8
column sql_text format a60
select distinct c.spid,b.sid,b.username,
a.module,a.hash_value,sql_text
from v\$sql a,v\$session b,v\$process c
where a.hash_value=b.sql_hash_value and
a.address=b.sql_address and b.paddr=c.addr and c.spid =$i;
exit
EOF
done
AIX:
#!/bin/bash
ps -e -o pCPU -o pid -o user -o args | grep Oracle | sort -k 1| tail -5r
spid=`ps -e -o pcpu -o pid -o user -o args | grep oracle | sort -k 1| tail -5r | awk '{print $2}'`
for i in $spid
do
sqlplus -S /nolog << EOF
conn / as sysdba
set feedback off
set linesize 200
set pagesize 70
column spid format 99999
column sid format 99999
column module format a20
column username format a8
column sql_text format a60
select distinct c.spid,b.sid,b.username,
a.module,a.hash_value,sql_text
from v\$sql a,v\$session b,v\$process c
where a.hash_value=b.sql_hash_value and
a.address=b.sql_address and b.paddr=c.addr and c.spid =$i;
exit
EOF
done
LINUX:
#!/bin/bash
ps -e -o pCPU -o pid -o user -o args | grep Oracle | sort -k 1| tail -5
spid=`ps -e -o pcpu -o pid -o user -o args | grep oracle | sort -k 1| tail -5 | awk '{print $2}'`
for i in $spid
do
sqlplus -S /nolog << EOF
conn / as sysdba
set feedback off
set linesize 200
set pagesize 70
column spid format 99999
column sid format 99999
column module format a20
column username format a8
column sql_text format a60
select distinct c.spid,b.sid,b.username,
a.module,a.hash_value,sql_text
from v\$sql a,v\$session b,v\$process c
where a.hash_value=b.sql_hash_value and
a.address=b.sql_address and b.paddr=c.addr and c.spid =$i;
exit
EOF
done
本文提供了一个bash脚本,用于查询占用CPU资源最高的五个Oracle进程,并通过SQL获取这些进程的相关信息,包括进程ID、会话ID、用户名、模块名及执行的SQL语句等。
7567

被折叠的 条评论
为什么被折叠?



