User session Monitor from Shell Script
[oracle@superlinux ~]$ cat user_session_monitor.sh#!/bin/sh
if [ $# -ne 1 ]
then echo "Usage: $0 pass the pid"
exit 1
fi
HOSTNAME=`hostname`
U=$1
export U
sqlplus -s "/ as sysdba" << EOI
set linesize 500
col hostname for a15
col program for a15
col username for a15
col osuser for a15
col sid for a10
col spid for a10
select s.sid "SID",p.spid "PID",s.username "USERNAME",s.osuser "OS-USER",s.machine "HOSTNAME",s.program "PROGRAM",s.status "STATUS" from v\$process p, v\$session s where upper(p.spid)=upper('$U') and p.addr = s.paddr;
exit;
EOI
sqlplus -s "/ as sysdba" <<EOI
set head off
set long 400000
! echo "The User Query Is ...."
select sql_text from v\$sqltext where address = (select sql_address from v\$session where paddr = (select addr from v\$process where spid = $U)) order by piece;
exit;
EOI
Usage of the shell script file
find out the process which is consuming lot of resource using top command and use the script as below
[oracle@superlinux ~]$ sh user_session_monitor.sh
Usage: user.sh pass the pid
[oracle@superlinux ~]$ sh user_session_monitor.sh 20053(OS pid) SID PID USERNAME OS-USER HOSTNAME PROGRAM STATUS ---------- ------------ --------------- ------------------------------ --------------- --------------- -------- ########## 20053 ORION mfarhan NATJED\ABDULWAH INACTIVE AB The User Query Is .... SELECT IEL_ID, IEL_TYPE, HIL_HN_ID, HIL_EXP_ID, NOTM FROM ORION .EUL_IG_EXP_LINKS WHERE IEL_TYPE='HIL' AND HIL_EXP_ID=:HIL_EXP _ID