跟踪oracle会话的所有活动

时间:2017-06-01 13:37:24

标签: sql oracle session trace

我正面临一个小问题&如果你有时间,我需要你的帮助,请:)

我正在尝试设置一种审核来跟踪某些特定会话执行的所有SQL语句

所以我创建了一个触发器AFTER LOGON,用于为这些会话启用跟踪事件(10046(所有级别测试)或使用DBMS_MONITOR)。

该脚本为我提供了正确的结果,但此外,它还填充了许多统计信息和跟踪信息。 oracle内部查询,所以我认为它会影响数据库性能和将占用太多磁盘空间。

有没有办法只收集用户查询?可能是一个特定的痕迹可以让我这样做吗?

感谢您的建议:)

1 个答案:

答案 0 :(得分:1)

使用sys=no标记tkprof input_file.trc output_file.txt sys=no 格式化文件,从而过滤跟踪文件中的递归查询:

record

输出文件应该比原始跟踪文件更小,更易于阅读。该文件可能仍会包含一些您不关心的语句,例如Spatial / SDO触发器。但大多数幕后陈述都将被排除在外。

要仅查看会话中执行的查询,并排除所有统计信息和内部查询,请使用tkprof input_file.trc output_file.tk sys=no record=record.txt 标志生成单独的文件:

{{1}}