57

在服务器上执行了更新 SQL 查询,导致后来出现很多问题。

如何获取最近 2 个月执行的更新查询列表,以便跟踪确切的有问题的 SQL 查询?

4

3 回答 3

78
    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子句是可选的。您可以根据FIRST_LOAD_TIME对结果进行排序,找到最多2个月前的记录。

于 2013-02-12T11:47:10.453 回答
46

对于最近的 SQL:

select * from v$sql

对于历史:

select * from dba_hist_sqltext
于 2014-10-13T22:49:57.560 回答
10

您可以使用此 sql 语句来获取任何日期的历史记录:

SELECT * FROM V$SQL V where  to_date(v.FIRST_LOAD_TIME,'YYYY-MM-DD hh24:mi:ss') > sysdate - 60
于 2015-06-05T04:32:13.410 回答