哪些当Oracle数据库中翻哪些用户以实施怎样SQL

对DBA来说,这是一个那个广的题材,DBA需要摸索有以下问题:

1、哪些用户在飞哪些SQL?

2、一个特定的SQL是给谁用户在履?

3、一个一定的用户在飞哪些SQL?

打这些题材遭得挺鲜明的圈下,这些题材还是指当前,此刻有的。事实上,还足以获重新多类似之情:

1、当前登录数据库的生哪些用户?

2、哪些计算机于被用户登录?

3、一个SQL跑了多久了?

具有以上这些题目且针对你的数据库性能调优有关。在ORACLE数据库被恐怕有性能低下的SQL语句,这时候你不怕用识别用户Oracle,SQLs,以便来缓解这些性低下的SQL.

有着这些信息还于盖v$开头的表中。比如v$session和v$sqlarea。

设你有以上2只说明底权限,可以履以下语句:

SELECT
SUBSTR(SS.USERNAME,1,8) USERNAME,
SS.OSUSER "USER",
AR.MODULE || ' @ ' || SS.machine CLIENT,
SS.PROCESS PID,
TO_CHAR(AR.LAST_LOAD_TIME, 'DD-Mon HH24:MM:SS') LOAD_TIME,
AR.DISK_READS DISK_READS,
AR.BUFFER_GETS BUFFER_GETS,
SUBSTR(SS.LOCKWAIT,1,10) LOCKWAIT,
W.EVENT EVENT,
SS.status,
AR.SQL_fullTEXT SQL
FROM V$SESSION_WAIT W,
V$SQLAREA AR,
V$SESSION SS,
v$timer T
WHERE SS.SQL_ADDRESS = AR.ADDRESS
AND SS.SQL_HASH_VALUE = AR.HASH_VALUE
AND SS.SID = w.SID (+)
AND ss.STATUS = 'ACTIVE'
AND W.EVENT != 'client message'
ORDER BY  SS.LOCKWAIT ASC, SS.USERNAME, AR.DISK_READS DESC

由此该语句,可以取你想要之消息,截图如下:

自之民众号:

相关文章