最好能查看,是哪个应用程序发出的语句,什么时间做的,哪个用户做的

解决方案 »

  1.   

    监控当前数据库谁在运行什么SQL语句 
    SELECT osuser, username, sql_text from v$session a, v$sqltext b 
    where a.sql_address =b.address order by address, piece;
      

  2.   

    请问bzszp:
    v$sqltext 这个视图具体是干什么的?
      

  3.   

    你去看看V$SQLTEXT的内容不就清楚了吗。
      

  4.   

    同意楼上的,可以用desc V$SQLTEXT;SELECT * (或者有关字段名)FROM V$SQLTEXT;
    察看里面的内容。数据字典里有很多视图来,只有靠这样来熟悉这些视图的作用,
    没有捷径走的。
      

  5.   

    如果数据库在归档模式下的话,可以用LogMiner分析出来。
    LogMiner是Oracle的日志分析工具,可以从日志中分析出所有的事物操作。但8i只支持dml,9i中还能察看到ddl。
    具体的找一下LogMiner的使用方法,能够找到那些用户那个时间对那张表作了什么操作。还有其他....
      

  6.   

    或许这样也可以达到目的:1监控表(指定表的Monitoring属性)--8i以后的版本
    2查sys.dba_tab_modifications当然审计是个办法
      

  7.   

    logminer也可以,功能强大,但不好用