Find out the history of SQL queries

OracleSql UpdateDatabase Administration

Oracle Problem Overview


An update SQL query was executed on the server, which caused many problems later.

How can I get the list of update queries executed in last 2 months, so that I can trace the exact problematic SQL query?

Oracle Solutions


Solution 1 - Oracle

    select v.SQL_TEXT,
           v.PARSING_SCHEMA_NAME,
           v.FIRST_LOAD_TIME,
           v.DISK_READS,
           v.ROWS_PROCESSED,
           v.ELAPSED_TIME,
           v.service
      from v$sql v
where to_date(v.FIRST_LOAD_TIME,'YYYY-MM-DD hh24:mi:ss')>ADD_MONTHS(trunc(sysdate,'MM'),-2)

where clause is optional. You can sort the results according to FIRST_LOAD_TIME and find the records up to 2 months ago.

Solution 2 - Oracle

For recent SQL:

select * from v$sql

For history:

select * from dba_hist_sqltext

Solution 3 - Oracle

You can use this sql statement to get the history for any date:

SELECT * FROM V$SQL V where  to_date(v.FIRST_LOAD_TIME,'YYYY-MM-DD hh24:mi:ss') > sysdate - 60

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionsumit vediView Question on Stackoverflow
Solution 1 - OraclebonsvrView Answer on Stackoverflow
Solution 2 - OraclegroksterView Answer on Stackoverflow
Solution 3 - OracleAshish PandeyView Answer on Stackoverflow