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

灰桃K 2013-05-21 03:18:25
小弟现在需要做一件事情,要从数据库监测从应用程序里访问数据库的SQL语句(主要是DML),要对一个用户下的所有表都实现监控,并生成每日的统计数据,比如访问数据库最频繁的SQL语句、执行时间最长的SQL语句等等。我尝试过用Oracle的审计,但貌似只能建在一张表或试图上,据说这东西挺消耗性能,不知道如果对所有表都开启审计会不会有问题。。。本人菜菜,望各位大虾指条明路。
...全文
201 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
灰桃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報告貌似可以產生你要的結果!
回复
相关推荐
发帖
基础和管理
创建于2007-09-28

1.7w+

社区成员

Oracle 基础和管理
申请成为版主
帖子事件
创建了帖子
2013-05-21 03:18
社区公告
暂无公告