oracle版本: 11g
最近在看oracle的执行历史,需要分析oracle sql的执行历史来判断任务的执行情况,可以使用下面的sql查询实现:
select
SQL_FULLTEXT,
FIRST_LOAD_TIME,
LAST_LOAD_TIME,
LAST_ACTIVE_TIME
from v$sql a LEFT JOIN dba_users b
ON a.parsing_user_id = b.user_id
WHERE b.username = 'EASXXX_R'
and FIRST_LOAD_TIME IS NOT NULL
-- AND SQL_FULLTEXT like '%BEGIN SYS.DBMS_LOGMNR.END_LOGMNR(); END;%'
ORDER BY LAST_ACTIVE_TIME DESC
注意: v$sql 这个视图针对相同的sql, 一个会话执行多次,只会出现一条,只会更新 LAST_ACTIVE_TIME。