我正面临一个小问题&如果你有时间,我需要你的帮助,请:)
我正在尝试设置一种审核来跟踪某些特定会话执行的所有SQL语句。
所以我创建了一个触发器AFTER LOGON
,用于为这些会话启用跟踪事件(10046(所有级别测试)或使用DBMS_MONITOR)。
该脚本为我提供了正确的结果,但此外,它还填充了许多统计信息和跟踪信息。 oracle内部查询,所以我认为它会影响数据库性能和将占用太多磁盘空间。
有没有办法只收集用户查询?可能是一个特定的痕迹可以让我这样做吗?
感谢您的建议:)
答案 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}}