关联V$SESSION即可 select b.sql_text,sid,serial#,username,program,to_char(logon_time,'yyyy-mm-dd hh24:mi:ss') as login_time from v$session a,v$sqlarea b where b.address=DECODE(a.sql_hash_value, 0, a.prev_sql_addr, a.sql_address) AND UPPER(SQL_TEXT) LIKE '%GIS%' ;
先执行下面的sql语句,把你想要查的sql的进程号取出来: select sql.sql_text, gs.process from v$sql sql, v$session se, SYS.GV_$SESSION gs where sql.address = se.sql_address and gs.paddr = se.paddrgs.process就是跑在数据库服务器上的进程号。到数据库主机上执行: ps -ef |grep gs.process 就可以看到是哪个程序执行的这个process了。
select b.sql_text,sid,serial#,username,program,to_char(logon_time,'yyyy-mm-dd hh24:mi:ss') as login_time
from v$session a,v$sqlarea b where b.address=DECODE(a.sql_hash_value, 0, a.prev_sql_addr, a.sql_address)
AND UPPER(SQL_TEXT) LIKE '%GIS%' ;
select sql.sql_text, gs.process from v$sql sql, v$session se, SYS.GV_$SESSION gs
where sql.address = se.sql_address
and gs.paddr = se.paddrgs.process就是跑在数据库服务器上的进程号。到数据库主机上执行:
ps -ef |grep gs.process
就可以看到是哪个程序执行的这个process了。
在根据中间件的日志或者链接信息来确定用户会话了