2010-12-22 17 views
6

planını açıklamak oluşturmak için sqlplus aşağıdaki:nasıl Genellikle kullanarak planlarını açıklamak oluşturmak tamamı saklı yordam

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 

Ama ne ben oluşturmak istiyorsanız bir saklı yordam için plan açıklamak?

Tüm saklı yordam için açık plan oluşturmanın bir yolu var mı? SP'nin giriş/çıkış parametresi yoktur.

cevap

6

Üretmekte olduğunuz şey "yürütme planı" olarak adlandırılır. "Açıklamayı planla", örnekte AUTOTRACE TRACEONLY'in yaptığı gibi bir yürütme planı oluşturmak ve görüntülemek için kullanılan bir komuttur.

Tanım olarak, bir yürütme planı tek bir SQL deyimidir. Bir PL/SQL bloğunun bir yürütme planı yoktur. Bir veya daha fazla SQL ifadesi içeriyorsa, bunların her birinin bir yürütme planı olacaktır.

Bir seçenek, SQL deyimlerini PL/SQL kodundan el ile ayıklamak ve zaten görüntülediğiniz işlemi kullanmaktır.

Başka bir seçenek de SQL izlemeyi aktif hale getirmek ve ardından prosedürü çalıştırmaktır. Bu, oturumda yürütülen tüm ifadeler için yürütme planlarını içeren sunucuda bir izleme dosyası oluşturacaktır. İz, oldukça ham halidir, bu yüzden Oracle'ın TKPROF aracını kullanarak biçimlendirmek genellikle en kolay olanıdır; Bu izleme dosyalarını da işleyen çeşitli üçüncü taraf araçları da vardır.

+0

Tamam. Manuel özü yoluna gideceğim. Ancak, şimdi saklı yordamda bazı döngü blokları varsa ne olur. BEGIN ve END'leri olduğu için bu döngü blokları için yürütme planlarını nasıl çalıştırırım? –

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 
İlgili konular