如何跟踪从app服务器提交给Oracle DB的所有查询?

时间:2011-11-25 05:48:41

标签: java sql oracle jdbc profiling

  

可能重复:
  Oracle: is there a tool to trace queries, like Profiler for sql server?

我正在使用JDBC与Oracle交谈。是否有任何方法或外部工具可以跟踪在一个会话期间从app服务器提交到Oracle DB服务器的所有SQL查询?这应该是非常好的调试/错误跟踪工具。

4 个答案:

答案 0 :(得分:6)

您可以使用JDBC (Enabling and Using JDBC Logging)日志记录功能。

答案 1 :(得分:4)

您可以尝试JProfiler。它的JDBC探针向您显示事件视图中的所有SQL语句:

enter image description here

适用于所有JDBC驱动程序,包括Oracle。此外,探针的热点视图对于确定哪些查询占用大部分时间非常有用。

免责声明:我公司开发JProfiler

答案 2 :(得分:1)

答案 3 :(得分:1)

您可以检查V $ SQLAREA视图以查看连接发送到服务器的所有内容:

select sql_fulltext,
       executions,
       buffer_gets,
       rows_processed,
       elapsed_time,
       first_load_time,
       last_active_time
from v$sqlarea 
where parsing_schema_name = 'YOUR_DB_USERNAME'

该视图还包含有关执行stament的频率以及可能有助于跟踪性能问题的其他有趣信息的信息。

请注意,该信息基本上是一个缓存 - 因此,在非常繁忙的系统中,可能会从全局区域清除语句(这意味着您可能没有真正看到所有语句)