2013-02-12 74 views
26

任何人都已经在服务器上执行了一些更新SQL查询。由此,现在出现了许多问题。我想要在最近2个月执行的更新查询列表来追踪出现问题的确切SQL查询。找出SQL查询的历史

你能帮我解决吗?

谢谢!

回答

43
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个月前查找记录。

+0

感谢Bonsvr。但上面的SQL查询只提供了今天执行的SQL。 – 2013-02-12 15:29:02

+1

从您的first_load_time列发布单元格。 – bonsvr 2013-02-13 14:02:33

+0

对不起,我没有得到你的意见.... – 2013-02-14 15:20:58

20

对于最新的SQL:

select * from v$sql 

对于历史:

select * from dba_hist_sqltext 
3

你可以使用这个SQL语句来获得历史任何日期:

SELECT * FROM V$SQL V where first_load_time LIKE '2015-05-04%';