如何对表操作进行监控
我们在跟踪定位一些系统问题的时候,经常需要知道哪些地方对一个表进行了操作,查询代码很麻烦,其实有一个简单的方法,就是跟踪表, 如下语句,就可以给表t_table增加监控了。
BEGIN dbms_fga.add_policy ( 'test', 't_table', 'fga' ); END; /
我们可以用下面语句就可以查询到对表t_table的所以数据库操作的,也可以查询到这些操作所对应的sql语句了,这样,我们就跟容易就可以定位出哪个sql存在问题了。
select * from sys.dba_fga_audit_trail t WHERE t.object_schema = 'test' AND t.object_name = 't_table'
当然,这种操作很耗性能,所以定位测试完成之后,别忘了用下面语句把这个测试给删除罗。 BEGIN dbms_fga.drop_policy ( 'test', 't_table', 'fga' ); END; /