如何查询一个月前在Oracle中执行的sql

时间:2018-12-13 10:04:56

标签: oracle oracle11g

我想查询一个月前执行的SQL。现在,我有一个月前收集的SQL_ID女巫,但没有收集sql_text。

2 个答案:

答案 0 :(得分:0)

有关先前执行的查询的所有信息都可以在基于sql_id的AWR视图中找到:

  • DBA_HIST_SQLTEXT 用于查询的文本;
  • DBA_HIST_SQLSTAT 用于查询统计信息,例如cpu_time,elapsed_time,执行次数等;
  • DBA_HIST_SQL_PLAN 用于执行计划;

要指定时间范围,请使用 DBA_HIST_SNAPSHOT 视图的 SNAP_ID 列进行联接,并按 BEGIN_INTERVAL_TIME 列进行过滤。

答案 1 :(得分:0)

您可以使用

进行查询
select sql_text, sql_fulltext 
  from gv$sql
 where sql_id = &i_sql_id

但是不能保证sql仍在库缓存中。