ORACLE 10046 Trace
10046 trace的跟蹤等級(jí)
10046是一個(gè)Oracle的內(nèi)部事件(event),通過設(shè)置這個(gè)事件可以得到Oracle內(nèi)部執(zhí)行系統(tǒng)解析、調(diào)用、等待、綁定變量等詳細(xì)的trace信息,對(duì)于分析系統(tǒng)的性能有著非常重要的作用。
設(shè)置10046事件的不同級(jí)別能得到不同詳細(xì)程度的trace信息,下面就列出各個(gè)不同級(jí)別的對(duì)應(yīng)作用:
| 0 | 0000 | 無輸出 |
| 1 | 0001 | 輸出 ****,APPNAME(應(yīng)用程序名),PARSING IN CURSOR,PARSE ERROR(SQL解析),EXEC(執(zhí)行),FETCH(獲取數(shù)據(jù)),UNMAP,SORT UNMAP(排序,臨時(shí)段),ERROR,STAT(執(zhí)行計(jì)劃),XCTEND(事務(wù))等行 |
| 2 | 0011 | 與等級(jí)1完全一樣 |
| 4 | 0101 | 包括等級(jí)1的輸出,加上BIND行(綁定變量信息) |
| 8 | 1001 | 包括等級(jí)1的輸出,加上WAIT行(等待事件信息) |
| 12 | 1101 | 輸出等級(jí)1、等級(jí)4以及等級(jí)8的所有信息 |
等級(jí)1的10046 trace被視為是普通的SQL Trace,而等級(jí)4、等級(jí)8以及等級(jí)12則被稱為Extended SQL Trace,Extended SQL Trace里面包括了最有用的WAIT信息,因此在實(shí)際中也是用的最多的。
與SQL Trace相關(guān)的參數(shù)
在打開10046時(shí)間的SQL Trace之前,要先設(shè)置好下面幾個(gè)參數(shù)。
timed_statistics要在當(dāng)前會(huì)話修改上述參數(shù)很簡(jiǎn)單,只要使用下面的命令即可:
| 1 2 3 | ALTER SESSION SET timed_statistics=true ALTER SESSION SET max_dump_file_size=unlimited ALTER SESSION SET tracefile_identifier='my_trace_session |
當(dāng)然,這些參數(shù)可以在系統(tǒng)級(jí)別修改的,也可以加載init文件中或是spfile中,讓系統(tǒng)啟動(dòng)時(shí)自動(dòng)做全局設(shè)置。
要是在系統(tǒng)運(yùn)行時(shí)動(dòng)態(tài)的修改別的會(huì)話的這些參數(shù)就需要借助DBMS_SYSTEM這個(gè)包了,設(shè)置方法如下:
| 1 2 3 4 5 6 7 8 9 | SYS.DBMS_SYSTEM.SET_BOOL_PARAM_IN_SESSION( ??:sid, :serial, ??'timed_statistics', true ) SYS.DBMS_SYSTEM.SET_INT_PARAM_IN_SESSION( ??:sid, :serial, ??'max_dump_file_size', 2147483647 ) |
注意,Oracle并沒有提供一個(gè)set_string_param_in_session的函數(shù)在dbms_system包中,因此tracefile_identifier是無法在別的會(huì)話中修改的(至少我到現(xiàn)在沒有找到一個(gè)可以設(shè)置的方法)。
10046 Trace啟動(dòng)方法
開啟當(dāng)前會(huì)話的10046 Trace
使用sql_trace參數(shù)
sql_trace應(yīng)該是簡(jiǎn)單快捷的開啟Trace的方法了,不過通過sql_trace只能開啟級(jí)別為1的Trace,而無法開啟其他更高級(jí)的Trace。
| 1 2 3 4 5 | -- 開啟Trace ALTER SESSION SET sql_trace=true; -- 關(guān)閉Trace ALTER SESSION SET sql_trace=false; |
使用set event開啟Trace
使用set event打開10046事件Trace是最常用的了。
| 1 2 3 4 5 | -- 開啟級(jí)別為12的Trace,level后面的數(shù)字設(shè)置了Trace的級(jí)別 ALTER SESSION SET EVENTS '10046 trace name context forever, level 12' -- 關(guān)閉Trace,任何級(jí)別 ALTER SESSION SET EVENTS '10046 trace name context off' |
開啟其他會(huì)話的10046 Trace
使用登陸觸發(fā)器開啟Trace
我們可以通過編寫登陸觸發(fā)器來開啟10046 Trace,使用這種方法開啟Trace的代碼和開啟當(dāng)前會(huì)話的是一樣的,不同的就是這些開啟代碼是包含在一個(gè)after logon觸發(fā)器里面的。
| 1 2 3 4 5 6 7 8 9 10 | -- 代碼來自《Optimazing Oracle Performance》 P116 CREATE OR REPLACE TRIGGER trace_test_user AFTER LOGON ON DATABASE BEGIN ??IF USER LIKE '%\_test' ESCAPE '\' THEN ????EXECUTE IMMEDIATE 'ALTER SESSION SET timed_statistics=true'; ????EXECUTE IMMEDIATE 'ALTER SESSION SET max_dump_file_size=unlimited'; ????EXECUTE IMMEDIATE 'ALTER SESSION SET EVENTS ''10046 trace name context forever, level 8'' '; ??END IF; END; / |
使用oradebug工具
使用oradebug工具必須要知道所要處理的進(jìn)程的OS進(jìn)程PID,OS PID可以使用下面的語句得到:
| 1 2 3 4 5 6 | SELECT S.USERNAME, ????P.SPID OS_PROCESS_ID, ????P.PID ORACLE_PROCESS_ID FROM V$SESSION S, V$PROCESS P WHERE S.PADDR = P.ADDR ????AND S.USERNAME = UPPER('&USER_NAME'); |
得到PID之后就可以使用oradebug工具了,注意需要使用sysdba登陸到數(shù)據(jù)庫:
| 1 2 3 4 5 6 7 8 | -- 假設(shè)9999為會(huì)話的OS PID oradebug setospid 9999; -- 設(shè)置Trace文件大小 oradebug unlimit; -- 開啟級(jí)別為12的Trace oradebug event 10046 trace name context forever ,level 12; --關(guān)閉trace Oradebug event 10046 trace name context off; |
使用DBMS_SYSTEM包
DBMS_SYSTEM包提供了兩個(gè)開啟10046 Trace的方法,一個(gè)是使用SET_SQL_TRACE_IN_SESSION過程,不過使用這個(gè)過程的效果和sql_trace是一樣的:
| 1 2 3 4 5 | -- 開啟Trace EXEC SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(:sid, :serial#, true); -- 關(guān)閉Trace EXEC SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(:sid, :serial#, false); |
另一個(gè)方法是使用SET_EV過程,當(dāng)然這個(gè)過程不僅僅用來設(shè)置10046事件,還能設(shè)置所有的其他的事件,使用方法為:
| 1 2 3 4 5 6 7 8 | PROCEDURE SET_EV ?Argument Name????????????????? Type??????????????????? In/Out Default? ?------------------------------ ----------------------- ------ -------- ?SI???????????????????????????? BINARY_INTEGER????????? IN ?SE???????????????????????????? BINARY_INTEGER????????? IN ?EV???????????????????????????? BINARY_INTEGER????????? IN ?LE???????????????????????????? BINARY_INTEGER????????? IN ?NM???????????????????????????? VARCHAR2??????????????? IN |
使用例子:
| 1 2 3 4 5 | -- 開啟level 12的Trace EXEC SYS.DBMS_SYSTEM.SET_EV(:sid, :serial, 10046, 12, ''); -- 關(guān)閉Trace EXEC SYS.DBMS_SYSTEM.SET_EV(:sid, :serial, 10046, 0, ''); |
使用DBMS_SUPPORT包
DBMS_SUPPORT包默認(rèn)情況下并沒有包含在數(shù)據(jù)庫中,需要通過運(yùn)行$ORACLE_HOME/rdbms/admin/dbmssupp.sql安裝之后才能使用。
可以DBMS_SUPPORT包來開啟自身進(jìn)程或者是別的進(jìn)程的Trace。
開啟自身進(jìn)程:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | -- 使用方法 DESC DBMS_SUPPORT PROCEDURE START_TRACE ?Argument Name????????????????? Type??????????????????? In/Out Default? ?------------------------------ ----------------------- ------ -------- ?WAITS????????????????????????? BOOLEAN???????????????? IN???? DEFAULT ?BINDS????????????????????????? BOOLEAN???????????????? IN???? DEFAULT PROCEDURE STOP_TRACE -- 實(shí)例 -- 開啟級(jí)別為12的Trace EXEC SYS.DBMS_SUPPORT.START_TRACE(true, true); -- 關(guān)閉Trace EXEC SYS.DBMS_SUPPORT.STOP_TRACE(); |
開啟其他進(jìn)程的Trace:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | -- 使用方法 PROCEDURE START_TRACE_IN_SESSION ?Argument Name????????????????? Type??????????????????? In/Out Default? ?------------------------------ ----------------------- ------ -------- ?SID??????????????????????????? NUMBER????????????????? IN ?SERIAL???????????????????????? NUMBER????????????????? IN ?WAITS????????????????????????? BOOLEAN???????????????? IN???? DEFAULT ?BINDS????????????????????????? BOOLEAN???????????????? IN???? DEFAULT PROCEDURE STOP_TRACE_IN_SESSION ?Argument Name????????????????? Type??????????????????? In/Out Default? ?------------------------------ ----------------------- ------ -------- ?SID??????????????????????????? NUMBER????????????????? IN ?SERIAL???????????????????????? NUMBER????????????????? IN -- 實(shí)例 -- 開啟級(jí)別為12的Trace EXEC SYS.DBMS_SUPPORT.START_TRACE_IN_SESSION(:sid, :serial, true, true); -- 關(guān)閉Trace EXEC SYS.DBMS_SUPPORT.STOP_TRACE_IN_SESSION(:sid, :serial); |
使用DBMS_MONITOR包
Oracle 10g中DBMS_MONITOR包的出現(xiàn)改變了以往一次只能開啟一個(gè)會(huì)話的歷史,開啟了一個(gè)批量啟用10046 Trace的新紀(jì)元。
追蹤單個(gè)會(huì)話
首先看看與前面類似的開啟單個(gè)會(huì)話的Trace的方法,這個(gè)時(shí)候與DBMS_SUPPORT包是幾乎沒有區(qū)別的:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | -- 過程定義 PROCEDURE SESSION_TRACE_DISABLE ?Argument Name????????????????? Type??????????????????? In/Out Default? ?------------------------------ ----------------------- ------ -------- ?SESSION_ID???????????????????? BINARY_INTEGER????????? IN???? DEFAULT ?SERIAL_NUM???????????????????? BINARY_INTEGER????????? IN???? DEFAULT PROCEDURE SESSION_TRACE_ENABLE ?Argument Name????????????????? Type??????????????????? In/Out Default? ?------------------------------ ----------------------- ------ -------- ?SESSION_ID???????????????????? BINARY_INTEGER????????? IN???? DEFAULT ?SERIAL_NUM???????????????????? BINARY_INTEGER????????? IN???? DEFAULT ?WAITS????????????????????????? BOOLEAN???????????????? IN???? DEFAULT ?BINDS????????????????????????? BOOLEAN???????????????? IN???? DEFAULT ?PLAN_STAT????????????????????? VARCHAR2??????????????? IN???? DEFAULT -- 實(shí)例 -- 開啟級(jí)別為12的Trace,當(dāng)前會(huì)話 EXEC DBMS_MONITOR.SESSION_TRACE_ENABLE(WAITS=>true,BINDS=>true); -- 開啟級(jí)別為12的Trace,其他會(huì)話 EXEC DBMS_MONITOR.SESSION_TRACE_ENABLE(:sid, :serial, true, true); -- 關(guān)閉Trace,當(dāng)前會(huì)話 EXEC DBMS_MONITOR.SESSION_TRACE_DISABLE(); -- 關(guān)閉Trace,其他會(huì)話 EXEC DBMS_MONITOR.SESSION_TRACE_DISABLE(:sid, :serial); |
根據(jù)Client Identifier追蹤
使用DBMS_MONITOR包也許同根據(jù)client identifier來Trace多個(gè)不同的會(huì)話,client identifier可以通過V$SESSION里面client_identifier字段看到,使用方法如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | -- 找出要Trace的client_identifier信息 SQL> SELECT sid, program, client_identifier FROM V$SESSION; ???????SID PROGRAM????????????????????????????????????????? CLIENT_IDENTIFIER ---------- ------------------------------------------------ ---------------------------------------- ????????71 sqlplus@orainst.desktop.mycompany.com (TNS V1-V3)???? oracle@orainst.desktop.mycompany.com ????????72 rman@orainst.desktop.mycompany.com (TNS V1-V3)??????? oracle@orainst.desktop.mycompany.com ????????75 rman@orainst.desktop.mycompany.com (TNS V1-V3)??????? oracle@orainst.desktop.mycompany.com -- 假設(shè)要Trace client_identifier是“oracle@orainst.desktop.mycompany.com”的所有會(huì)話 -- 使用下面的語句即可,開啟一個(gè)level 12的Trace SQL> EXECUTE DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE('oracle@orainst.desktop.mycompany.com', true, true); PL/SQL procedure successfully completed. -- 使用下面語句停止 EXECUTE DBMS_MONITOR.CLIENT_ID_TRACE_DISABLE('oracle@orainst.desktop.mycompany.com'); |
根據(jù)Service, Module和Action追蹤
DBMS_MONITOR包的SERV_MOD_ACT_TRACE_ENABLE過程用來根據(jù)Service, Module和Action三個(gè)屬性開啟多個(gè)會(huì)話的Trace。
在進(jìn)行Trace之前要確保你的應(yīng)用程序設(shè)置了這三個(gè)相應(yīng)的屬性,Oracle提供了包DBMS_APPLICATION_INFO用來設(shè)置module、action等信息,使用方法如下:
| 1 2 3 | EXEC dbms_application_info.SET_MODULE('Trace Test', 'No Trace'); EXEC DBMS_APPLICATION_INFO.SET_ACTION(''No Trace'); EXEC DBMS_APPLICATION_INFO.SET_CLIENT_INFO('A Haaaa'); |
設(shè)置完成之后我們就可以在V$SESSION看到這些信息了:
| 1 2 3 4 5 6 7 8 9 10 11 | SQL> COL ACTION FOR A10 SQL> COL MODULE FOR A45 SQL> COL SERVICE_NAME FOR A12 SQL> COL SID FOR 999 SQL> SELECT SID , service_name, module, action FROM v$session WHERE TYPE<>'BACKGROUND'; ?SID SERVICE_NAME MODULE??????????????????????????????????????? ACTION ---- ------------ --------------------------------------------- ---------- ??67 SYS$USERS??? SQL Developer ??71 SYS$USERS??? sqlplus@orainst.desktop.mycompany.com (TNS V1-V3) ??72 SYS$USERS??? Trace Test??????????????????????????????????? No Trace |
知道了相應(yīng)的信息再使用DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE來啟用對(duì)相應(yīng)會(huì)話的Trace:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | -- 針對(duì)service name為“SYS$USERS”的所有會(huì)話開啟Trace EXECUTE DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE(service_name => 'SYS$USERS', ????????waits => TRUE, binds => FALSE); -- 停止所開啟的Trace EXECUTE DBMS_MONITOR.SERV_MOD_ACT_TRACE_DISABLE(service_name => 'SYS$USERS'); -- 針對(duì)特定的action開啟Trace EXECUTE DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE(service_name=>'SYS$USERS', ????module_name=>'Trace Test', ????action_name => 'Trace', ????waits => TRUE, binds => FALSE); -- 停止所開啟的Trace EXECUTE DBMS_MONITOR.SERV_MOD_ACT_TRACE_DISABLE(service_name=>'SYS$USERS', ????module_name=>'Trace Test', ????action_name => 'Trace') |
開啟數(shù)據(jù)庫級(jí)的Trace
DBMS_MONITOR還能開啟數(shù)據(jù)庫級(jí)別的Trace。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | -- 定義 PROCEDURE DATABASE_TRACE_DISABLE ?Argument Name????????????????? Type??????????????????? In/Out Default? ?------------------------------ ----------------------- ------ -------- ?INSTANCE_NAME????????????????? VARCHAR2??????????????? IN???? DEFAULT PROCEDURE DATABASE_TRACE_ENABLE ?Argument Name????????????????? Type??????????????????? In/Out Default? ?------------------------------ ----------------------- ------ -------- ?WAITS????????????????????????? BOOLEAN???????????????? IN???? DEFAULT ?BINDS????????????????????????? BOOLEAN???????????????? IN???? DEFAULT ?INSTANCE_NAME????????????????? VARCHAR2??????????????? IN???? DEFAULT ?PLAN_STAT????????????????????? VARCHAR2??????????????? IN???? DEFAULT -- 開啟數(shù)據(jù)庫級(jí)的level 12的Trace EXEC DBMS_MONITOR.DATABASE_TRACE_ENABLE(true, true); -- 停止數(shù)據(jù)庫級(jí)的Trace EXEC DBMS_MONITOR.DATABASE_TRACE_DISABLE(); |
這個(gè)功能影響整個(gè)數(shù)據(jù)庫,很強(qiáng)大,慎用!
開啟多個(gè)會(huì)話Trace的注意點(diǎn)
使用DBMS_MONITOR開啟多個(gè)會(huì)話的Trace是動(dòng)態(tài)的,比如說當(dāng)你要追蹤某個(gè)特定的action的Trace的時(shí)候,你并不需要先確定那個(gè)特定的action對(duì)應(yīng)的會(huì)話正在運(yùn)行中才能開啟相應(yīng)的Trace,相反的是一旦某個(gè)進(jìn)程的action滿足當(dāng)前開啟的Trace的條件的時(shí)候,那個(gè)會(huì)話就會(huì)開始輸出Trace信息,當(dāng)會(huì)話的action發(fā)生改變之后,Trace信息也會(huì)停止輸出,下面是一個(gè)簡(jiǎn)單的測(cè)試。
先在一個(gè)進(jìn)程中開始針對(duì)module為“Trace Test”,action為“Trace”的Trace:
| 1 2 3 4 5 6 | SQL> EXECUTE DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE(service_name=>'SYS$USERS', module_name=>'Trace Test', action_name => 'Trace', waits => TRUE, binds => FALSE); PL/SQL procedure successfully completed. |
然后在另外一個(gè)進(jìn)程中執(zhí)行下面的一序列語句:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | -- 設(shè)置當(dāng)前會(huì)話的module和action SQL> EXEC DBMS_APPLICATION_INFO.SET_MODULE('Trace Test', 'Trace'); PL/SQL procedure successfully completed. -- 執(zhí)行一個(gè)簡(jiǎn)單的查詢 SQL> select 'trace' from dual; TRACE ------ trace -- 改變當(dāng)前會(huì)話的action SQL> EXEC DBMS_APPLICATION_INFO.SET_MODULE('Trace Test', 'No Trace'); PL/SQL procedure successfully completed. -- 再執(zhí)行另一個(gè)查詢 SQL> select 'no trace' from dual; NOTRACE -------- no trace |
執(zhí)行完畢之后打開Trace文件就會(huì)發(fā)現(xiàn)第一次執(zhí)行module、action設(shè)置的語句和第二次執(zhí)行的“select ‘no trace’ from dual;”都沒有出現(xiàn)在Trace文件,Trace文件內(nèi)容如下:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | Unix process pid: 8900, image: oracle@orainst.desktop.mycompany.com (TNS V1-V3) *** 2010-04-13 06:55:24.247 *** SESSION ID:(72.604) 2010-04-13 06:55:24.247 *** CLIENT ID:(oracle@orainst.desktop.mycompany.com) 2010-04-13 06:55:24.247 *** SERVICE NAME:(SYS$USERS) 2010-04-13 06:55:24.247 *** MODULE NAME:(Trace Test) 2010-04-13 06:55:24.247 *** ACTION NAME:(Trace) 2010-04-13 06:55:24.247 ===================== PARSING IN CURSOR #1 len=69 dep=0 uid=0 oct=47 lid=0 tim=1271141724247208 hv=297401484 ad='9eb182c8' sqlid='1ckkjdn8vmz4c' BEGIN DBMS_APPLICATION_INFO.SET_MODULE('Trace Test', 'Trace'); END; END OF STMT EXEC #1:c=0,e=113,p=0,cr=0,cu=0,mis=1,r=1,dep=0,og=1,plh=0,tim=1271141724247201 WAIT #1: nam='SQL*Net message to client' ela= 6 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1271141724247735 *** 2010-04-13 06:55:32.913 WAIT #1: nam='SQL*Net message from client' ela= 8666025 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1271141732913790 CLOSE #1:c=0,e=43,dep=0,type=0,tim=1271141732913937 ===================== PARSING IN CURSOR #2 len=25 dep=0 uid=0 oct=3 lid=0 tim=1271141732932795 hv=660028772 ad='9eb12b10' sqlid='70t5xg4mpfgb4' select 'trace ' from dual END OF STMT PARSE #2:c=1000,e=18805,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,plh=1388734953,tim=1271141732932792 EXEC #2:c=0,e=47,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=1388734953,tim=1271141732932946 WAIT #2: nam='SQL*Net message to client' ela= 4 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1271141732932989 FETCH #2:c=0,e=17,p=0,cr=0,cu=0,mis=0,r=1,dep=0,og=1,plh=1388734953,tim=1271141732933035 STAT #2 id=1 cnt=1 pid=0 pos=1 obj=0 op='FAST DUAL? (cr=0 pr=0 pw=0 time=0 us cost=2 size=0 card=1)' WAIT #2: nam='SQL*Net message from client' ela= 151 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1271141732933287 FETCH #2:c=0,e=3,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=0,plh=1388734953,tim=1271141732933331 WAIT #2: nam='SQL*Net message to client' ela= 2 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1271141732933364 *** 2010-04-13 06:55:48.413 WAIT #2: nam='SQL*Net message from client' ela= 15480453 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1271141748413833 CLOSE #2:c=0,e=26,dep=0,type=0,tim=1271141748413963 ===================== PARSING IN CURSOR #1 len=72 dep=0 uid=0 oct=47 lid=0 tim=1271141748415935 hv=2176830839 ad='9eb0ec80' sqlid='ar765n60vzmbr' BEGIN DBMS_APPLICATION_INFO.SET_MODULE('Trace Test', 'No Trace'); END; END OF STMT PARSE #1:c=1999,e=1919,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,plh=0,tim=1271141748415932 *** MODULE NAME:(Trace Test) 2010-04-13 06:55:48.416 *** ACTION NAME:(No Trace) 2010-04-13 06:55:48.416 EXEC #1:c=0,e=93,p=0,cr=0,cu=0,mis=0,r=1,dep=0,og=1,plh=0,tim=1271141748416134 |
總結(jié)
以上是生活随笔為你收集整理的ORACLE 10046 Trace的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux bash shell之变量替
- 下一篇: linux bash shell中,单引