通过用户[Oracle]查看SQL历史记录



我正在尝试在我们的Oracle 11G数据库中查找用户的所有(可用)SQL历史记录。我已经尝试使用一些视图,例如v$sql_monitorv$sqlareadba_hist_active_sess_history来尝试获取用户名及其执行的SQL语句(在SID和SID和序列号上加入),但我没有任何运气。我们的高级DBA和DBE说,他们以前做过,但只是告诉我要在Sqlarea看,因为SQL拥有最长的历史。我对此没有任何运气。这可以在Oracle中做吗?

编辑:我们使用SQL开发人员。我知道蟾蜍可能内置或可能没有此功能,但我找不到在SQL开发人员中找到完成此功能的任何东西(查看当前会话和当前SQL)。

如果您有适当的许可来查询dba_histive_sess_history,则可以尝试类似的东西,您需要诊断包的许可证:

select trunc(hist.sample_time,'DD'),u.name,hist.sql_id,sql.sql_text
from dba_hist_active_sess_history hist,
     dba_hist_sqltext sql,
     user$ u
where hist.sql_id = sql.sql_id
and   hist.user_id = u.user#;

我认为,获取用户确切的SQL-Scuctions的唯一方法(我认为您的意思是会话?)是通过包含跟踪。我认为这篇文章(https://oracle-base.com/articles/misc/sql-trace-10046-trcsess-and-tkprof)为您提供了很好的指导。

最新更新