History of running sessions between 2 dates (dd/mm/yyyy hh24:mi)
set linesize 250
set verify off
set pagesize 9999
COLUMN Time FORMAT a20 HEADING 'Sample time'
COLUMN Username FORMAT a12 HEADING 'User name'
COLUMN Session_id FORMAT 99999 HEADING 'Sess ID'
COLUMN sql_id FORMAT a14 HEADING 'SQL ID'
COLUMN program FORMAT a33 HEADING 'Program'
COLUMN module FORMAT a20 HEADING 'Module'
COLUMN event FORMAT a25 HEADING 'Event name'
COLUMN time_waited FORMAT 999,999,999 HEADING 'Time waited'
COLUMN owner1 FORMAT a15 HEADING 'Owner 1'
COLUMN object_name FORMAT a15 HEADING 'Object name 1'
COLUMN owner1 FORMAT a15 HEADING 'Owner 2'
COLUMN p2 FORMAT a15 HEADING 'Object name 2'
SELECT to_char(h.SAMPLE_TIME, 'dd/mm/yyyy hh24:mi:ss') time, u.username, h.blocking_session block_sid, h.session_id, h.sql_id, h.program, h.module, h.event, h.time_waited, o.owner, o.object_name, o1.owner, o1.object_name p2
FROM DBA_HIST_ACTIVE_SESS_HISTORY h, DBA_OBJECTS o, dba_users u, dba_objects o1
where sample_time between to_date('&begin_date', 'dd/mm/yyyy hh24:mi') and to_date('&end_date', 'dd/mm/yyyy hh24:mi')
and session_type != 'BACKGROUND'
and o.object_id (+) = h.CURRENT_OBJ#
and h.p2 = o1.object_id (+)
and time_waited > 0
and u.user_id = h.user_id
and upper(event) like upper('%&EVENT_TO_FIND%')
order by sample_id, sample_time
/
Sessions history for last NNN minutes
set linesize 250
set verify off
set pagesize 9999
COLUMN Time FORMAT a24 HEADING 'Sample time'
COLUMN User_id FORMAT 99999 HEADING 'User ID'
COLUMN Session_id FORMAT 99999 HEADING 'Sess ID'
COLUMN sql_id FORMAT a14 HEADING 'SQL ID'
COLUMN program FORMAT a33 HEADING 'Program'
COLUMN module FORMAT a33 HEADING 'Module'
COLUMN event FORMAT a25 HEADING 'Event name'
COLUMN time_waited FORMAT 999,999,999 HEADING 'Time waited'
COLUMN owner FORMAT a15 HEADING 'Owner'
COLUMN object_name FORMAT a35 HEADING 'Object name'
SELECT to_char(h.SAMPLE_TIME, 'dd/mm/yyyy hh24:mi:ss') time, h.user_id, h.session_id, h.sql_id, h.program, h.module, h.event, h.time_waited, o.owner, o.object_name
FROM v$ACTIVE_SESSION_HISTORY h, DBA_OBJECTS o
where sample_time between sysdate-1/(24*60/&MINUTES_BACK) and sysdate
and session_type != 'BACKGROUND'
and o.object_id (+) = h.CURRENT_OBJ#
and time_waited > 0
and upper(event) like upper('%&EVENT_TO_FIND%')
order by sample_id, sample_time
/
SQL execution history (ASH)
set linesize 230 set pagesize 9999 select cpu_time_delta,elapsed_time_delta,iowait_delta,plan_hash_value, EXECUTIONS_DELTA, round(elapsed_time_delta/EXECUTIONS_DELTA/1000/1000, 4) avg_exec_time_sec, (select to_char(end_interval_time, 'dd/mm/yyyy hh24:mi') from dba_hist_snapshot hs where hs.snap_id = a.snap_id) end_date from dba_hist_sqlstat a , dba_hist_sqltext b where a.sql_id=b.sql_id and snap_id in (select distinct snap_id from dba_hist_snapshot where end_interval_time>=sysdate-&days_back) and a.sql_id = '&sql_id' and EXECUTIONS_DELTA != 0 order by snap_id;
SQL execution history (cache)
set linesize 230 set pagesize 9999 select cpu_time,elapsed_time,plan_hash_value, EXECUTIONS, round(elapsed_time/EXECUTIONS/1000/1000, 4) avg_exec_time_sec from v$sqlstats where sql_id = '&SQL_ID';