2010-12-22 14 views
6

के लिए योजना की व्याख्या मैं आमतौर पर उपयोग करते हुए योजनाओं समझाने उत्पन्न sqlplus में निम्नलिखित:कैसे उत्पन्न करने के लिए पूरे संग्रहीत प्रक्रिया

SET AUTOTRACE ON 
SET TIMING ON 
SET TRIMSPOOL ON 
SET LINES 200 
SPOOL filename.txt 
SET AUTOTRACE TRACEONLY; 

{query goes here} 

SPOOL OFF 
SET AUTOTRACE OFF 

लेकिन क्या मैं जनरेट करना चाहते हैं एक संग्रहीत प्रक्रिया के लिए योजना की व्याख्या?

क्या पूरे संग्रहीत प्रक्रिया के लिए व्याख्या योजना तैयार करने का कोई तरीका है? एसपी में कोई इनपुट/आउटपुट पैरामीटर नहीं है।

उत्तर

6

जो आप उत्पन्न कर रहे हैं उसे सही ढंग से "निष्पादन योजना" कहा जाता है। "योजना समझाएं" एक आदेश है जो एक निष्पादन योजना उत्पन्न करने और देखने के लिए उपयोग किया जाता है, जितना ऑटोट्रेसी आपके उदाहरण में करता है।

परिभाषा के अनुसार, एक निष्पादन योजना एक एकल SQL कथन के लिए है। एक पीएल/एसक्यूएल ब्लॉक में निष्पादन योजना नहीं है। यदि इसमें एक या अधिक SQL कथन शामिल हैं, तो उनमें से प्रत्येक में निष्पादन योजना होगी।

एक विकल्प पीएल/एसक्यूएल कोड से एसक्यूएल कथन मैन्युअल रूप से निकालने और आपके द्वारा पहले से दिखाए गए प्रक्रिया का उपयोग करना है।

एक और विकल्प एसक्यूएल ट्रेसिंग सक्रिय करना है, फिर प्रक्रिया को चलाएं। यह सर्वर पर एक ट्रेस फ़ाइल उत्पन्न करेगा जिसमें सत्र में निष्पादित सभी कथनों के लिए निष्पादन योजनाएं शामिल होंगी। ट्रेस काफी कच्चे रूप में है इसलिए ओरेकल के टीकेप्रोफ टूल का उपयोग करके इसे प्रारूपित करना आम तौर पर आसान होता है; ऐसे कई तृतीय-पक्ष टूल भी हैं जो इन ट्रेस फ़ाइलों को भी संसाधित करते हैं।

+0

ठीक है। मैं मैन्युअल निकालने का रास्ता जाऊंगा। हालांकि, अब अगर मेरे पास संग्रहीत प्रक्रिया में कुछ लूप ब्लॉक हैं। मैं उन लूप ब्लॉक के लिए निष्पादन योजना कैसे चलाऊंगा क्योंकि उनके पास BEGIN और END है –

1
Hi I have done like below for the stored procedure: 
SET AUTOTRACE ON 
SET TIMING ON 
SET TRIMSPOOL ON 
SET LINES 200 
SPOOL filename.txt 
SET AUTOTRACE TRACEONLY; 
@your stored procedure path 
SPOOL OFF 
SET AUTOTRACE OFF 

And got the below statistics: 

    Statistics 
----------------------------------------------------------- 
       6 CPU used by this session 
       8 CPU used when call started 
       53 DB time 
       6 Requests to/from client 
      188416 cell physical IO interconnect bytes 
      237 consistent gets 
      112 consistent gets - examination 
      237 consistent gets from cache 
      110 consistent gets from cache (fastpath) 
      2043 db block gets 
       1 db block gets direct 
      2042 db block gets from cache 
      567 db block gets from cache (fastpath) 
       27 enqueue releases 
       27 enqueue requests 
       4 messages sent 
       31 non-idle wait count 
       19 non-idle wait time 
       44 opened cursors cumulative 
       2 opened cursors current 
       22 physical read total IO requests 
      180224 physical read total bytes 
       1 physical write total IO requests 
      8192 physical write total bytes 
       1 pinned cursors current 
      461 recursive calls 
       4 recursive cpu usage 
      2280 session logical reads 
     1572864 session pga memory 
       19 user I/O wait time 
       9 user calls 
       1 user commits 
No Errors. 
Autotrace Disabled 
संबंधित मुद्दे