【发布时间】:2018-03-02 19:17:57
【问题描述】:
我正在尝试在我们的 Oracle 11g 数据库中按用户查找所有(可用)SQL 历史记录。我尝试使用诸如v$sql_monitor、v$sqlarea 和dba_hist_active_sess_history 之类的视图来尝试获取用户名及其执行的SQL 语句(加入SID 和序列号),但我没有任何运气。我们的高级 DBA 和 DBE 说他们以前做过,但只是告诉我查看 sqlarea,因为它拥有最长的 SQL 历史。我对此没有任何运气。这可以在 Oracle 中完成吗?
编辑:我们使用 SQL Developer。我知道 TOAD 可能会或可能不会内置此功能,但我无法在 SQL Developer 中找到任何可以实现此功能的东西(除了查看当前会话和当前 SQL)。
【问题讨论】:
-
检查这个表 v$sql
-
您到底想要什么 - 每个用户执行的每个 SQL 的列表?你永远找不到那个。
-
您的 DBA 错误。 V$SQLSTATS 具有最长的保留时间,即使在游标已从共享池中老化后也是如此。