2017-06-01 126 views
0

我面对的一个小问题&我需要你的帮助,如果你有时间做的所有活动,请:)跟踪的Oracle会话

我试图建立一种审计跟踪所有SQL语句由某些特定会话执行。

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

剧本给了我正确的结果,但除此之外,它有很多统计&甲骨文内部查询填充的痕迹,所以我想它会影响数据库的性能&会占用太多的磁盘空间。

有什么办法只收集用户查询?可能是一个具体的痕迹可以让我这样做吗?

感谢您的建议:)使用标志sys=notkprof格式文件

回答

1

过滤递归查询出来的跟踪文件:

tkprof input_file.trc output_file.txt sys=no 

输出文件应该是更小,更易于阅读比原始跟踪文件。该文件可能还会包含一些您不关心的语句,例如Spatial/SDO触发器。但大部分幕后声明将被排除。

,仅查看该会话执行的查询,并排除所有的统计数据和内部查询,使用record标志产生一个单独的文件:

tkprof input_file.trc output_file.tk sys=no record=record.txt 
+0

谢谢!输出更好:)是否有删除统计信息或删除内部查询? – DBAMan