Code: [Copy to clipboard] alter session set events '10046 trace name context forever, level 12' /* code to be traced goes here */ alter session set events '10046 trace name context off'
更好的方法是使用DBMS_SUPPORT包來激活擴展SQL跟蹤:
Code: [Copy to clipboard] dbms_support.start_trace(waits=>true, binds=>true) /* code to be traced goes here */ dbms_support.stop_trace()
Code: [Copy to clipboard] dbms_support.start_trace_in_session( sid => 42, serial# => 1215, waits => true, binds => true) /* code to be traced executes during this time window */ dbms_support.stop_trace_in_session( sid => 42, serial => 1215)
Code: [Copy to clipboard] alter session set timed_statistics=true; alter session set max_dump_file_size=unlimited; alter session set tracefile_identifier='Hello'; /* only in Oracle Database 8.1.7and later */ alter session set events '10046 trace name context forever, level 12'; select 'Howdy, it is 'sysdate from dual; exit;
然后在由USER_DUMP_DEST實例參數的值命名的目錄中尋找文件名中包含字符串"Hello"的最新寫入的.trc文件。用你最喜歡的文本編輯器打開它。 閱讀Oracle MetaLink注釋39817.1或(Optimizing Oracle Performance,《優化Oracle性能》)一書,以便大概了解原始跟蹤文件中有些什么。一定要運行跟蹤文件上的tkPRof,并研究其輸出,但也不要由于有了tkprof就不再看原始的跟蹤文件。跟蹤文件中還有許多tkprof沒有向你展示的內容。 假如你不僅需要一個由簡單的SELECT from DUAL 生成的跟蹤文件,還需要一個更感愛好的跟蹤文件,那么需要跟蹤下面這條SQL語句:
Code: [Copy to clipboard] select object_type, owner, object_name from dba_objects;