请问要如何配置,或修改设置,才能在log中记录下所有执行过的SQL语句以及trace?谢谢!

解决方案 »

  1.   

    alter system set sql_trace=true
    不过数据库会变很慢。
      

  2.   

    alter session set sql_trace=true;
      

  3.   

    性能方面不用考虑,因为我在测试环境下做。
    我设置了 system sql_trace=true
    不过看到是类似下面的信息:=====================
    PARSING IN CURSOR #7 len=116 dep=2 uid=0 oct=3 lid=0 tim=99641107202 hv=189272129 ad='673115f8'
    select o.owner#,o.name,o.namespace,o.remoteowner,o.linkname,o.subname,o.dataobj#,o.flags from obj$ o where o.obj#=:1
    END OF STMT
    PARSE #7:c=0,e=58,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim=99641107194
    EXEC #7:c=0,e=47,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim=99641107626
    FETCH #7:c=0,e=42,p=0,cr=3,cu=0,mis=0,r=1,dep=2,og=4,tim=99641107757
    EXEC #7:c=0,e=26,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim=99641107926
    FETCH #7:c=0,e=23,p=0,cr=3,cu=0,mis=0,r=1,dep=2,og=4,tim=99641108039没有我执行的SQL。是否还需要其他的转换才可以?还是设置不对?
    谢谢
      

  4.   

    如果你只是看你自己SQL,
    还是在你执行SQL前,跑alter session set sql_trace=true;
    之后alter session set sql_trace=false;
    这样比较单纯点。
      

  5.   

    我要看所有人的SQL
    最好能看到某个SQL是谁提交上来的信息,比如执行用户,提交时间,提交的客户端机器名等信息。tkprof 格式化之后还是没有SQL信息。