Oracle डेटाबेस ट्यूनिंग के लिए ट्रेसिंग एक महत्वपूर्ण हिस्सा है। यह सभी समस्या बयानों को पकड़ने में मदद करेगा, प्रतीक्षा घटना जो सत्र के धीमे चलने के लिए जिम्मेदार हैं।
Oracle डेटाबेस ने स्थानीय सत्र, अन्य उपयोगकर्ता सत्र का पता लगाने और पठनीय बनाने के लिए ट्रेस को प्रारूपित करने के कई त्वरित तरीके प्रदान किए हैं
बीआर/>
आइए कुछ नज़र डालते हैं कि SQL ट्रेस कैसे चालू करें, Oracle डेटाबेस में 10046 ईवेंट और trcsess, tkprof उपयोगिता
विषय-सूची
एसक्यूएल ट्रेस ,100046 इवेंट
यदि आप स्थानीय सत्र में ट्रेस करना चाहते हैं, तो SQL ट्रेस चालू करने के चरण यहां दिए गए हैं
Normal trace alter session set sql_trace = true; -- To put trace on alter session set sql_trace = false; -- To put trace off Full level with wait event And bind trace alter session set events = ‘10046 trace name context forever, level 12’; To put tracing off alter session set events = ‘10046 trace name context off’; Same as Normal trace exec DBMS_SESSION.set_sql_trace(sql_trace => TRUE); exec DBMS_SESSION.set_sql_trace(sql_trace => FALSE);
यदि आप अन्य चल रहे सत्र में ट्रेस करना चाहते हैं, तो यहां चरण दिए गए हैं
Normal trace execute dbms_system.set_sql_trace_in_session (‘sid’,’serial’,true); -- To put tracing on execute dbms_system.set_sql_trace_in_session (‘sid’,’serial’,true); -- To put tracing off Full level with wait event And bind trace execute dbms_system.set_ev(‘sid’,’serial’,10046,12,’’); To put trace off execute dbms_system.set_ev(‘sid’,’serial’,10046,0,’’);
आपने ऊपर विभिन्न कथनों में 12.0 का उपयोग करते देखा होगा। वे स्तरों का पता लगा रहे हैं। ओरेकल ट्रेसिंग में ट्रेसिंग स्तर हैं। यहां मान्य मान हैं
0 | कोई निशान नहीं। जैसे sql_trace को बंद करना। |
2 | नियमित sql_trace के समतुल्य यह निष्पादन पथ, पंक्ति गणना, सबसे छोटी फ़्लैट फ़ाइल प्रदान करता है लाभ निष्पादन पथ प्रदान करता है पंक्ति गणना प्रदान करता है छोटी फ्लैट फ़ाइल उत्पन्न करता है नुकसान यह नहीं बता सकता कि SQL को रन टाइम पर कौन से मान दिए गए थे यदि क्वेरी के आंकड़े कम हैं लेकिन रन टाइम लंबा है तो यह नहीं बता सकता कि किन इवेंट्स के कारण लंबा इंतजार हुआ |
4 | 2 के समान, लेकिन बाइंड वैरिएबल मानों को जोड़ने के साथ फायदे निष्पादन पथ प्रदान करता है पंक्ति गणना प्रदान करता है यह बता सकता है कि कथन किन मूल्यों के लिए चलाया गया था नुकसान फिर से अगर रन टाइम लंबा है और आंकड़े कम हैं तो यह बताना मुश्किल होगा कि इस प्रकार के ट्रेस में क्यों। एक बड़ी फ्लैट फ़ाइल तैयार करता है जिसे नियमित ट्रेस किया जाता है क्योंकि बाइंड वैरिएबल जानकारी को संग्रहीत किया जाना है।टीडी> |
8 | 2 के समान, लेकिन प्रतीक्षा ईवेंट के अतिरिक्त नियमित ट्रेस प्लस डेटाबेस संचालन समय जो SQL द्वारा पूरा करने के लिए प्रतीक्षा की गई थी। उदाहरण के लिए:डिस्क एक्सेस टाइमिंग। फायदे निष्पादन पथ प्रदान करता है पंक्ति गणना प्रदान करता है SQL से जुड़े सभी ईवेंट के लिए समय बता सकता है। नुकसान ट्रेस फ़ाइल आसानी से अधिकतम हो सकती है क्योंकि सभी जानकारी Oracle को ट्रेस फ़ाइल में लिखनी चाहिए और उसके बाद ट्रेस फ़ाइल में केवल आंशिक जानकारी उपलब्ध होती है। बाइंड वैरिएबल जानकारी उपलब्ध नहीं है |
12 | 2 के समान, लेकिन बाइंड वैरिएबल वैल्यू और वेटिंग इवेंट दोनों के साथ वेट और बाइंड जानकारी दोनों के साथ रेगुलर ट्रेस। सबसे पूर्ण जानकारी शामिल है और सबसे बड़ी ट्रेस फ़ाइल का उत्पादन करेगा। निष्पादन पथ प्रदान करता है पंक्ति गणना प्रदान करता है एसक्यूएल से जुड़े सभी घटनाओं के लिए समय बता सकता है। यह बता सकता है कि कौन से मूल्य हैं SQL फायदे के साथ चलाया गया था निष्पादन पथ प्रदान करता है पंक्ति गणना प्रदान करता है एसक्यूएल से जुड़े सभी ईवेंट के लिए समय बता सकता है। यह बता सकता है कि एसक्यूएल किन मूल्यों के साथ चलाया गया था नुकसानमजबूत> ट्रेस फ़ाइल आसानी से अधिकतम हो सकती है क्योंकि सभी जानकारी Oracle को ट्रेस फ़ाइल में लिखनी चाहिए और उसके बाद केवल आंशिक जानकारी ट्रेस फ़ाइल में उपलब्ध होती है। |
ट्रेसिंग करने के अन्य तरीके भी हैं। यहां इनमें से कुछ हैं
(1) ORADEBUG
इसके लिए sysdba के रूप में लॉगिन की आवश्यकता है
oradebug setospid 1111 -- Debug session with the specified Oracle process id oradebug setorapid 1111 --- Debug session with the specified OS process oradebug event 10046 trace name context forever, level 4; oradebug event 10046 trace name context off; --- This disable the trace oradebug close_trace --- This closes the trace file Oradebug TRACEFILE_NAME;
(2) Oracle 10g के साथ DBMS_MONITOR पैकेज का उपयोग करके SQL ट्रेसिंग विकल्पों को बढ़ा दिया गया है
EXECUTE dbms_monitor.session_trace_enable Which is similar ALTER SESSION SET EVENTS '10046 trace name context forever, level 2'; EXECUTE dbms_monitor.session_trace_enable (binds=>true); Which is similar ALTER SESSION SET EVENTS '10046 trace name context forever, level 4'; EXECUTE dbms_monitor.session_trace_enable (waits=>true); Which is similar ALTER SESSION SET EVENTS '10046 trace name context forever, level 8'; EXECUTE dbms_monitor.session_trace_enable('sid','serial#') Which is similar execute dbms_system.set_ev(‘sid’,’serial’,10046,2,’’); EXECUTE dbms_monitor.session_trace_enable ('sid','serial#',binds=>true); Which is similar execute dbms_system.set_ev(‘sid’,’serial’,10046,4,’’); EXECUTE dbms_monitor.session_trace_enable ('sid','serial#',waits=>true); Which is similar execute dbms_system.set_ev(‘sid’,’serial’,10046,8,’’);
dbms_monitor में कई अन्य कार्यशीलता उपलब्ध हैं। हम क्लाइंट आइडेंटिफ़ायर और कई तरीकों के आधार पर ट्रेस सक्षम कर सकते हैं
ट्रेस फ़ाइलों की पहचान कैसे करें
हम सत्र की गति का उपयोग करके ट्रेस फ़ाइलों की पहचान कर सकते हैं। साथ ही ट्रेस फ़ाइल में ट्रेस फ़ाइल की शुरुआत में sid,serial# जोड़ी होगी।
नीचे क्वेरी का उपयोग स्थानीय सत्र ट्रेस फ़ाइल को खोजने के लिए किया जा सकता है
select c.value || '/' || d.instance_name ||'_ora_' || a.spid || '.trc' trace from v$process a, v$session b, v$parameter c, v$instance d where a.addr = b.paddr and b.audsid = userenv('sessionid') and c.name = 'user_dump_dest' /
ट्रेस फ़ाइल की पहचान करने का एक और आसान तरीका है जिसे ट्रेस पहचानकर्ता . कहा जाता है
alter session set tracefile_identifer=’ORAC’; This is identifier
उदाहरण ट्रेस फ़ाइल
Trace file /app/oracle/TEST/diag/rdbms/test/TEST/trace/TEST_ora_13025_IDEN.trc Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options ORACLE_HOME = /app/oracle/TEST/11.2.0/db System name: SunOS12 Node name: sun12Release: 5.10Version: Generic_144488-11 Machine: sun4u Instance name: TEST Redo thread mounted by this instance: 1 Oracle process number: 202 Unix process pid: 13025, image: [email protected] SunOS12 *** 2013-10-21 12:28:56.461 *** SESSION ID:(3875.17341) 2013-10-21 12:28:56.461*** CLIENT ID:() 2013-10-21 12:28:56.461 *** SERVICE NAME:(TEST) 2013-10-21 12:28:56.461 *** MODULE NAME:([email protected](TNS V1-V3)) 2013-10-21 12:28:56.461 *** ACTION NAME:() 2013-10-21 12:28:56.461 CLOSE #4:c=0,e=11,dep=1,type=1,tim=8866891135825 ===================== PARSING IN CURSOR #5 len=356 dep=1 uid=173 oct=3 lid=173 tim=8866891136821 hv=2468783182 ad='4c70e4398' sqlid='0wmwsjy9kd92f'SELECT PROFILE_OPTION_ID, APPLICATION_ID, SITE_ENABLED_FLAG , APP_ENABLED_FLAG , RESP_ENABLED_FLAG , USER_ENABLED_FLAG, ORG_ENABLED_FLAG , SERVER_ENABLED_FLAG, SERVERRESP_ENABLED_FLAG, HIERARCHY_TYPE, USER_CHANGEABLE_FLAG FROM FND_PROFILE_OPTIONS WHERE PROFILE_OPTION_NAME = :B1 AND START_DATE_ACTIVE <= SYSDATE AND NVL(END_DATE_ACTIVE, SYSDATE) >= SYSDATEEND OF STMT BINDS #5: Bind#0 oacdty=01 mxl=128(80) mxlc=00 mal=00 scl=00 pre=00 oacflg=03 fl2=1206001 frm=01 csi=871 siz=128 off=0 kxsbbbfp=ffffffff7d677b48 bln=128 avl=21 flg=0 value="PER_BUSINESS_GROUP_ID" EXEC #5:c=0,e=1474,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=1,plh=1374985481,tim=8866891138224 FETCH #5:c=0,e=61,p=0,cr=3,cu=0,mis=0,r=1,dep=1,og=1,plh=1374985481,tim=8866891138429 CLOSE #5:c=0,e=5,dep=1,type=3,tim=8866891138503 ===================== PARSING IN CURSOR #4 len=230 dep=1 uid=173 oct=3 lid=173 tim=8866891138634 hv=3575592451 ad='3aeea3da0' sqlid='55dc767ajydh3' SELECT PROFILE_OPTION_VALUE FROM FND_PROFILE_OPTION_VALUES WHERE PROFILE_OPTION_ID = :B4 AND APPLICATION_ID = :B3 AND LEVEL_ID = 10003 AND LEVEL_VALUE = :B2 AND LEVEL_VALUE_APPLICATION_ID = :B1 AND PROFILE_OPTION_VALUE IS NOT NULL END OF STMT BINDS #4: Bind#0 oacdty=02 mxl=22(21) mxlc=00 mal=00 scl=00 pre=00 oacflg=03 fl2=1206001 frm=00 csi=00 siz=96 off=0 kxsbbbfp=ffffffff7d677b68 bln=22 avl=03 flg=05 value=1204 Bind#1 oacdty=02 mxl=22(21) mxlc=00 mal=00 scl=00 pre=00 oacflg=03 fl2=1206001 frm=00 csi=00 siz=0 off=24 kxsbbbfp=ffffffff7d677b80 bln=22 avl=02 flg=01 value=800 Bind#2 oacdty=02 mxl=22(21) mxlc=00 mal=00 scl=00 pre=00 oacflg=03 fl2=1206001 frm=00 csi=00 siz=0 off=48 kxsbbbfp=ffffffff7d677b98 bln=22 avl=04 flg=01 value=50334 Bind#3 oacdty=02 mxl=22(21) mxlc=00 mal=00 scl=00 pre=00 oacflg=03 fl2=1206001 frm=00 csi=00 siz=0 off=72 kxsbbbfp=ffffffff7d677bb0 bln=22 avl=01 flg=01 value=0 EXEC #4:c=0,e=377,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=1,plh=2802907561,tim=8866891138978 FETCH #4:c=0,e=26,p=0,cr=3,cu=0,mis=0,r=0,dep=1,og=1,plh=2802907561,tim=8866891139050 CLOSE #4:c=0,e=2,dep=1,type=3,tim=8866891139116 ===================== PARSING IN CURSOR #5 len=191 dep=1 uid=173 oct=3 lid=173 tim=8866891139308 hv=303338305 ad='3bedf0e48' sqlid='7qs7fx89194u1' SELECT PROFILE_OPTION_VALUE FROM FND_PROFILE_OPTION_VALUES WHERE PROFILE_OPTION_ID = :B4 AND APPLICATION_ID = :B3 AND LEVEL_ID = :B2 AND LEVEL_VALUE = :B1 AND PROFILE_OPTION_VALUE IS NOT NULL END OF STMT BINDS #5: Bind#0 oacdty=02 mxl=22(21) mxlc=00 mal=00 scl=00 pre=00 oacflg=03 fl2=1206001 frm=00 csi=00 siz=96 off=0 kxsbbbfp=ffffffff7d673b78 bln=22 avl=03 flg=05 value=1204 Bind#1 oacdty=02 mxl=22(21) mxlc=00 mal=00 scl=00 pre=00 oacflg=03 fl2=1206001 frm=00 csi=00 siz=0 off=24 kxsbbbfp=ffffffff7d673b90 bln=22 avl=02 flg=01 value=800 Bind#2 oacdty=02 mxl=22(21) mxlc=00 mal=00 scl=00 pre=00 oacflg=03 fl2=1206001 frm=00 csi=00 siz=0 off=48 kxsbbbfp=ffffffff7d673ba8 bln=22 avl=04 flg=01 value=10001
कैसे जांचें कि ऑरैकल में ट्रेस सक्षम है या नहीं
यदि आपने DBMS_MONITOR पैकेज का उपयोग करके ट्रेसिंग को सक्षम किया है, तो हम जांच सकते हैं कि क्या ट्रेस नीचे दी गई क्वेरी का उपयोग करके सक्षम है
set lines 180 col module for a45 col sql_trace_waits for a20 col sql_trace_binds for a20 col sql_trace for a20 select username,module,sid,sql_trace,sql_trace_waits,sql_trace_binds from v$session where sql_trace='ENABLED' /
यदि यह अन्य विधियों के माध्यम से सक्षम है, तो जांच करने का एकमात्र तरीका ट्रेस स्थान को देखना है और हाल ही में ट्रेस फ़ाइलों का पता लगाना है और फिर इसमें सिड और सीरियल # ढूंढें और फिर आप v$session को खोजने के लिए क्वेरी कर सकते हैं सत्र और यदि आप चाहें तो ट्रेस को अक्षम कर सकते हैं
Oracle tkprof उपयोगिता
उपरोक्त विधि से प्राप्त ट्रेस फ़ाइलें कच्चे रूप में होती हैं जिन्हें tkprof उपयोगिता (क्षणिक कर्नेल प्रोफ़ाइल उपयोगिता)
का उपयोग करके अधिक पठनीय प्रारूप में परिवर्तित किया जा सकता है।tkprof Usage: tkprof tracefile outputfile [explain= ] [table= ] [print= ] [insert= ] [sys= ] [sort= ] table=schema.tablename Use 'schema.tablename' with 'explain=' option. explain=user/password Connect to ORACLE and issue EXPLAIN PLAN. print=integer List only the first 'integer' SQL statements. aggregate=yes|no insert=filename List SQL statements and data inside INSERT statements. sys=no TKPROF does not list SQL statements run as user SYS. record=filename Record non-recursive statements found in the trace file. waits=yes|no Record summary for any wait events found in the trace file. sort=option Set of zero or more of the following sort options: prscnt number of times parse was called prscpu CPU time parsing prsela elapsed time parsing prsdsk number of disk reads during parse prsqry number of buffers for consistent read during parseprscu number of buffers for current read during parseprsmis number of misses in library cache during parseexecnt number of execute was called execpu CPU time spent executing exeela elapsed time executing exedsk number of disk reads during execute exeqry number of buffers for consistent read during execute execu number of buffers for current read during execute exerow number of rows processed during execute exemis number of library cache misses during execute fchcnt number of times fetch was called fchcpu cpu time spent fetching fchela elapsed time fetching fchdsk number of disk reads during fetch fchqry number of buffers for consistent read during fetch fchcu number of buffers for current read during fetch fchrow number of rows fetched userid userid of user that parsed the cursor
कुछ उदाहरण
tkprof file.trc file.txt sys=no explain=userid/password sort=prsela,exeela,fchela tkprof file.trc file.txt sys=no explain=userid/password sort=prsela,exeela,fchela tkprof file.trc file.txt sys=no tkprof file.trc file.txt sys=no explain=userid/password sort=prsela,exeela,fchela This print 10 sql only tkprof .trc elaps.prf sys=no explain=apps/ sort=(prsela,exeela,fchela) print=10 This print all the sql tkprof .trc elaps.prf sys=no explain=apps/apps sort=prsela,exeela,fchela
tkprof फ़ाइल की उदाहरण सामग्री
TKPROF: Release 11.2.0.4.0 - Production on Tue Jan 17 14:12:41 2013 Copyright (c) 1982, 2007, Oracle. All rights reserved. Trace file: TEST_ora_15941.trc Sort options: execpu fchcpu ******************************************************************************** count = number of times OCI procedure was executed CPU = CPU time in seconds executing elapsed = elapsed time in seconds executing disk = number of physical reads of buffers from disk query = number of buffers gotten for consistent read current = number of buffers gotten in current mode (usually for update) rows = number of rows processed by the fetch or execute call ******************************************************************************** SQL ID: 6w82ggrtysx Plan Hash: 2325776775 SELECT FUNCTION_NAME FROM FND_USER_DESKTOP_OBJECTS WHERE USER_ID = :b1 AND APPLICATION_ID = :b2 AND RESPONSIBILITY_ID = :b3 AND TYPE = 'FUNCTION' AND ROWNUM <= 10 ORDER BY SEQUENCE call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 1 0.00 0.00 0 0 0 0 Execute 1 0.00 0.00 0 0 0 0 Fetch 2 0.00 0.00 0 4 0 1 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 4 0.00 0.00 0 4 0 1 Misses in library cache during parse: 0 Optimizer mode: ALL_ROWS Parsing user id: 173 (APPS) Number of plan statistics captured: 1 Rows (1st) Rows (avg) Rows (max) Row Source Operation ---------- ---------- ---------- --------------------------------------------------- 1 1 1 SORT ORDER BY (cr=4 pr=0 pw=0 time=0 us cost=6 size=41 card=1) 1 1 1 COUNT STOPKEY (cr=4 pr=0 pw=0 time=0 us) 1 1 1 TABLE ACCESS BY INDEX ROWID FND_USER_DESKTOP_OBJECTS (cr=4 pr=0 pw=0 time=0 us cost=5 size=41 card=1) 1 1 1 INDEX RANGE SCAN FND_USER_DESKTOP_OBJECTS_N1 (cr=3 pr=0 pw=0 time=0 us cost=3 size=0 card=3)(object id 33596) Rows Execution Plan ------- --------------------------------------------------- 0 SELECT STATEMENT MODE: ALL_ROWS 1 SORT (ORDER BY) 1 COUNT (STOPKEY) 1 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF 'FND_USER_DESKTOP_OBJECTS' (TABLE) 1 INDEX MODE: ANALYZED (RANGE SCAN) OF 'FND_USER_DESKTOP_OBJECTS_N1' (INDEX) Elapsed times include waiting on following events: Event waited on Times Max. Wait Total Waited ---------------------------------------- Waited ---------- ------------ SQL*Net message to client 5 0.00 0.00 SQL*Net message from client 5 0.00 0.00******************************************************************************** SQL ID: 276ut2ywqux Plan Hash: 3856112528 select object_name, icon_name from fnd_desktop_objects call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 1 0.00 0.00 0 0 0 0 Execute 1 0.00 0.00 0 0 0 0 Fetch 3 0.00 0.00 0 6 0 47 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 5 0.00 0.00 0 6 0 47 Misses in library cache during parse: 0 Optimizer mode: ALL_ROWS Parsing user id: 173 (APPS) Number of plan statistics captured: 1 Rows (1st) Rows (avg) Rows (max) Row Source Operation ---------- ---------- ---------- --------------------------------------------------- 47 47 47 TABLE ACCESS FULL FND_DESKTOP_OBJECTS (cr=6 pr=0 pw=0 time=0 us cost=2 size=1175 card=47) Rows Execution Plan ------- --------------------------------------------------- 0 SELECT STATEMENT MODE: ALL_ROWS 47 TABLE ACCESS MODE: ANALYZED (FULL) OF 'FND_DESKTOP_OBJECTS' (TABLE)
ओरेकल ट्रेसेस उपयोगिता
साझा सर्वर सत्रों का उपयोग करते समय, कई प्रक्रियाएं शामिल होती हैं। उपयोगकर्ता सत्र से संबंधित ट्रेस विभिन्न प्रक्रियाओं से संबंधित विभिन्न ट्रेस फ़ाइलों में बिखरा हुआ है। इससे सत्र के जीवन चक्र की पूरी तस्वीर प्राप्त करना मुश्किल हो जाता है।
trcsess उपयोगिता कई मानदंडों के आधार पर चयनित ट्रेस फ़ाइलों से ट्रेस आउटपुट को समेकित करती है
trcsess [output=output_file_name] [session=session_id] [clientid=client_id] [service=service_name] [action=action_name] [module=module_name] [trace_files] trcsess output=main.trc service=TEST *trc
समेकित ट्रेस फ़ाइल उत्पन्न होने के बाद आप उस पर tkprof निष्पादित कर सकते हैं।
अधिक जानकारी
11g और उच्चतर में, sql_trace भी एक ईवेंट है और इसे ईवेंट सिंटैक्स के साथ सेट किया जा सकता है:
SQL> oradebug doc event name sql_trace sql_trace: event for sql trace Usage ------- sql_trace wait < false | true >, bind < false | true >, plan_stat < never | first_execution | all_executions | adaptive >, level <ub4>
तो आप इसका उपयोग निम्न प्रकार से SQL_TRACE को बाइंड जानकारी का अनुरोध करने के लिए सक्षम करने के लिए कर सकते हैं:
alter session set events 'sql_trace bind=true';
या बाइंड एंड वेट इनफॉर्मेशन (नोटिस कॉमा सेपरेटेड):
alter session set events 'sql_trace bind=true, wait=true';
यदि आप इसके लिए फ़िल्टर शामिल करते हैं तो आगे ट्रेस SQL_IDs के एक सेट तक सीमित हो सकता है। उदा.
alter session set events 'sql_trace [sql: sql_id=g3yc1js3g2689 | sql_id=7ujay4u33g337]bind=true, wait=true';
10046 ईवेंट स्तर:(नए sql_trace मान [..] में शामिल हैं)
ये बिट मान हैं इसलिए अलग-अलग मिश्रण प्राप्त करने के लिए इन्हें एक साथ रखा जा सकता है
1 - मानक SQL_TRACE कार्यक्षमता सक्षम करें (डिफ़ॉल्ट)
4 - स्तर 1 प्लस ट्रेस बाइंड वैल्यू [बाइंड =सच]
8 - जैसा कि स्तर 1 प्लस ट्रेस प्रतीक्षा करता है [ प्रतीक्षा =सत्य ]
यह विशेष रूप से कुंडी प्रतीक्षा आदि का पता लगाने के लिए उपयोगी है।
लेकिन इसका उपयोग पूर्ण तालिका स्कैन और अनुक्रमणिका स्कैन को खोजने के लिए भी किया जा सकता है।
11g तक ये अतिरिक्त बिट स्तर उपलब्ध हैं:
16 - प्रत्येक निष्पादन के लिए STAT लाइन डंप उत्पन्न करें [ plan_stat=all_executions ]
32 - निष्पादन आंकड़े कभी भी डंप न करें [ plan_stat=never ]
11.2.0.2 तक यह अतिरिक्त बिट स्तर उपलब्ध है:
64 - STAT लाइनों का अनुकूली डंप। [ plan_stat=adaptive ]
यदि SQL में लगभग 1 मिनट से अधिक समय लगता है तो यह STAT जानकारी को डंप कर देता है
अधिक महंगे SQL के लिए और ऐसे
SQL के विभिन्न निष्पादन के लिए जानकारी देता है।
उदाहरण:एक सामान्य घटना स्तर 12 है जिसमें मानक SQL_TRACE आउटपुट, बाइंड, प्रतीक्षा और
डिफ़ॉल्ट STAT लाइन ट्रेसिंग शामिल है।
नोट:
STAT डंपिंग को 11g में संशोधित किया गया है ताकि वे सभी निष्पादनों में एकत्रित न हों लेकिन निष्पादन के बाद डंप हो जाएं। यह उन मामलों को संबोधित करने के लिए किया गया है जहां कर्सर बंद नहीं है और इसलिए STAT जानकारी को डंप नहीं किया जाता है।
अब हम निष्पादन के बाद STAT जानकारी प्राप्त करने की गारंटी देते हैं। STAT लाइनों पर बेहतर नियंत्रण रखने के लिए उपरोक्त बिट स्तरों को देखें।
यह भी पढ़ता है
v$active_session_history
Oracle में योजना की व्याख्या करें
sql ट्यूनिंग सलाहकार