Oracle监测访问数据库的SQL命令

灰桃K 2013-05-21 03:18:25
小弟现在需要做一件事情,要从数据库监测从应用程序里访问数据库的SQL语句(主要是DML),要对一个用户下的所有表都实现监控,并生成每日的统计数据,比如访问数据库最频繁的SQL语句、执行时间最长的SQL语句等等。我尝试过用Oracle的审计,但貌似只能建在一张表或试图上,据说这东西挺消耗性能,不知道如果对所有表都开启审计会不会有问题。。。本人菜菜,望各位大虾指条明路。
...全文
222 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
灰桃K 2013-05-24
  • 打赏
  • 举报
回复
额···自己顶一个
灰桃K 2013-05-23
  • 打赏
  • 举报
回复
引用 3 楼 ruihuahan 的回复:
这些东西都可以从 oracle 的动态性能视图中找到,比如:v$sql, v$session_longops 等等等等,很多。
谢谢!这个之前我也简单弄了一下,不过我不知道怎么去找所有执行过的SQL命令,就像日志那样的。而像V$SQL,v$session这些视图好像是即时的,我是说除非我查这些视图的时候,应用程序正好也正在执行一段SQL,这样我才能捕获到。然后我写了一个存储过程,用到了V$SQL,V$SESSION,V$SESSION_WAIT这3个视图,就像做报表统计那样把我想要的结果insert进一张表,这个存储过程利用JOB每5分钟执行一次。思路就是通过尽可能频繁的去查来捕获访问数据库的SQL,其实我自己也知道这么做是有问题的,但因为想不到更好的办法同时也出于尝试还是做了,最后实际效果确实也不理想
ruihuahan 2013-05-22
  • 打赏
  • 举报
回复
这些东西都可以从 oracle 的动态性能视图中找到,比如:v$sql, v$session_longops 等等等等,很多。
灰桃K 2013-05-21
  • 打赏
  • 举报
回复
引用 1 楼 hanks_gao 的回复:
通過Oracle的AWR報告貌似可以產生你要的結果!
感谢! 我先看看,期待更多回答中
hanks_gao 2013-05-21
  • 打赏
  • 举报
回复
通過Oracle的AWR報告貌似可以產生你要的結果!

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧