Title: RE: 10046 trace - weird library misses
Raj,
This is exactly what happens. More than that, SQL is parsed just once, there is even no soft parses then. PL/SQL - every time goes hard
 
Here is raw trace
 
PARSING IN CURSOR #1 len=50 dep=0 uid=40 oct=47 lid=40 tim=1045147633021608 hv=1118565285 ad='5416c120'
BEGIN :n := FNC_SP_GET_SUBID_BY_EXT_KEY (:v); END;
END OF STMT
PARSE #1:c=0,e=23499,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=0,tim=1045147633021588
=====================
PARSING IN CURSOR #2 len=157 dep=1 uid=40 oct=3 lid=40 tim=1045147633074682 hv=1186233262 ad='5297e0dc'
SELECT SUB.sub_id
     FROM SUB, REF_STATUS
    WHERE SUB.sub_status_id = REF_STATUS.status_id
      AND status != 'deleted'
      AND SUB.external_key = :b1
END OF STMT
PARSE #2:c=0,e=151,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1045147633074659
EXEC #2:c=0,e=152,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1045147633075035
FETCH #2:c=0,e=529,p=0,cr=6,cu=0,mis=0,r=1,dep=1,og=4,tim=1045147633075599
WAIT #1: nam='SQL*Net message to client' ela= 6 p1=1413697536 p2=1 p3=0
EXEC #1:c=20000,e=54001,p=0,cr=6,cu=0,mis=0,r=1,dep=0,og=4,tim=1045147633075793
WAIT #1: nam='SQL*Net message from client' ela= 1132996 p1=1413697536 p2=1 p3=0
=====================
PARSING IN CURSOR #1 len=50 dep=0 uid=40 oct=47 lid=40 tim=1045147634237789 hv=1118565285 ad='5416c120'
BEGIN :n := FNC_SP_GET_SUBID_BY_EXT_KEY (:v); END;
END OF STMT
PARSE #1:c=0,e=1339,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=0,tim=1045147634237772
EXEC #2:c=0,e=99,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1045147634250940
FETCH #2:c=0,e=493,p=0,cr=6,cu=0,mis=0,r=1,dep=1,og=4,tim=1045147634251548
WAIT #1: nam='SQL*Net message to client' ela= 5 p1=1413697536 p2=1 p3=0
EXEC #1:c=0,e=13751,p=0,cr=6,cu=0,mis=0,r=1,dep=0,og=4,tim=1045147634251723
WAIT #1: nam='SQL*Net message from client' ela= 1374129 p1=1413697536 p2=1 p3=0
=====================
PARSING IN CURSOR #1 len=50 dep=0 uid=40 oct=47 lid=40 tim=1045147635660908 hv=1118565285 ad='5416c120'
BEGIN :n := FNC_SP_GET_SUBID_BY_EXT_KEY (:v); END;
END OF STMT
PARSE #1:c=0,e=1610,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=0,tim=1045147635660892
EXEC #2:c=0,e=100,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1045147635700813
FETCH #2:c=0,e=508,p=0,cr=6,cu=0,mis=0,r=1,dep=1,og=4,tim=1045147635701433
WAIT #1: nam='SQL*Net message to client' ela= 5 p1=1413697536 p2=1 p3=0
EXEC #1:c=0,e=40510,p=0,cr=6,cu=0,mis=0,r=1,dep=0,og=4,tim=1045147635701610
-----Original Message-----
From: Jamadagni, Rajendra [mailto:[EMAIL PROTECTED]]
Sent: Thursday, February 13, 2003 1:50 PM
To: Multiple recipients of list ORACLE-L
Subject: RE: 10046 trace - weird library misses

I wonder if soft parsing applies to pl/sql blocks as it applies to just plain sql?? do you see the sql inside the function parsed less times compared to execute?
 
Raj
______________________________________________________

Rajendra Jamadagni              MIS, ESPN Inc.

Rajendra dot Jamadagni at ESPN dot com

Any opinion expressed here is personal and doesn't reflect that of ESPN Inc.

QOTD: Any clod can have facts, but having an opinion is an art!

-----Original Message-----
From: Gorbounov,Vadim [mailto:[EMAIL PROTECTED]]
Sent: Thursday, February 13, 2003 11:39 AM
To: Multiple recipients of list ORACLE-L
Subject: RE: 10046 trace - weird library misses

Raj,
It's not dynamic.
From SQLPlus prompt it looks like
 
SQL> BEGIN :n := FNC_SP_GET_SUBID_BY_EXT_KEY (:v); END;
  2  /
 
Thank you,
-----Original Message-----
From: Jamadagni, Rajendra [mailto:[EMAIL PROTECTED]]
Sent: Thursday, February 13, 2003 10:44 AM
To: Multiple recipients of list ORACLE-L
Subject: RE: 10046 trace - weird library misses

Are you using dynamic sql? execute immediate? That might explain ... because exec immediate does a   hard parse ... and it is documented too.

Raj
______________________________________________________
Rajendra Jamadagni              MIS, ESPN Inc.
Rajendra dot Jamadagni at ESPN dot com
Any opinion expressed here is personal and doesn't reflect that of ESPN Inc.
QOTD: Any clod can have facts, but having an opinion is an art!


-----Original Message-----
From: Gorbounov,Vadim [mailto:[EMAIL PROTECTED]]
Sent: Thursday, February 13, 2003 9:49 AM
To: Multiple recipients of list ORACLE-L
Subject: 10046 trace - weird library misses


Dear friends,

I traced one of our test cases and found something weird.

Did anybody else observe this?

Env:
server - 9.0.1.4, Solaris.
client - weblogic 7, uses original oracle thin 9.0.1 jdbc driver to connect.
         In fact, I can reproduce all this from SQLPlus

Here is an excerpt from tkprof below - why every parse is a hard parse?
Looks like the problem doesn't appear when 10046 is not set, and it appers
ONLY on pl/sql blocks returning data to client, normal selects OK. Looks
like bug again. Any workaround?

And what are these "Misses in library cache during execute"?

9.2.0.2 on Linux works fine, i.e. no misses once it has been parsed.

   BEGIN :1 := FN_GET_STATUS_ID(:2,:3); END;


   call     count       cpu    elapsed       disk      query    current
rows
   ------- ------  -------- ---------- ---------- ---------- ----------
----------
   Parse       40      0.07       0.08          0          0          0
0
   Execute     80      0.62       1.55         64       1492          0
80
   Fetch        0      0.00       0.00          0          0          0
0
   ------- ------  -------- ---------- ---------- ---------- ----------
----------
   total      120      0.69       1.63         64       1492          0
80

   Misses in library cache during parse: 40
   Misses in library cache during execute: 40
   Optimizer goal: CHOOSE
   Parsing user id: 40 

This select

   select LOADED_VERSIONS, EXECUTIONS, LOADS,PARSE_CALLS, parsing_user_id
   from v$sql
   where sql_text like 'BEGIN :1 := FN_GET_STATUS_ID(:2,:3); END;';

gives out whole bunch of these record groups

   LOADED_VERSIONS EXECUTIONS      LOADS PARSE_CALLS PARSING_USER_ID
   --------------- ---------- ---------- ----------- ---------------
              1          1          1           1              40
              1          1          1           0              40
   .... repeated N times

Thank you for you time

Vadim G
--
Please see the official ORACLE-L FAQ: http://www.orafaq.net
--
Author: Gorbounov,Vadim
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to