Jonathan,

Wouldn't bind variable issue that prevents cursor from
sharing be visible in bind_mismatch?
How can one simulate this?

var v varchar2(1)
begin select count(5) into :v from dual; end;
/
select address, sql_text from v$sql where sql_text
like '%count(5)%';

ADDRESS  SQL_TEXT
--------
---------------------------------------------------------------------------
6DE92A74 SELECT count(5) from dual
6DE960D0 begin select count(5) into :v from dual; end;

-- Change a bind variable size:
var v varchar2(30)
begin select count(5) into :v from dual; end;
/
-- same output, no change, both sql and pl/sql wrapper
cursors are still shared

-- Change a bind variable type:
var v number
begin select count(5) into :v from dual; end;
/
ADDRESS  SQL_TEXT
--------
----------------------------------------------------------------------------
6DE92A74 SELECT count(5) from dual
6DE960D0 begin select count(5) into :v from dual; end;
6DE960D0 begin select count(5) into :v from dual; end;

-- ok, here pl/sql parent (dep=0) cursor is no longer
shared

[EMAIL PROTECTED]> select * from v$sql_shared_cursor where
kglhdpar = '6DE960D0';

ADDRESS  KGLHDPAR U S O O S L S E B P I S T A B D L T
R I I R L I O S M U T N F
-------- -------- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
6DE95B54 6DE960D0 N N N N N N N N N N N N N N N N N N
N N N N N N N N N N N N N
6DE86F94 6DE960D0 N N N N N N N N N N N N N N Y N N N
N N N N N N N N N N N N N

2 rows selected.

-- yep, bind variables mismatch

Thanks,
Boris Dali.

 --- Jonathan Lewis <[EMAIL PROTECTED]>
wrote: > 
> I recall James Morle saying something about
> code not being sharable if the declared sizes 
> of the bind variables don't match.  If Informatica
> is using a 3GL to call anonymous pl/sql blocks
> with different bind variables every time, perhaps
> it is causing a bind variable mismatch.
> 
> As for the 400MB - I've often noticed oddities where
> a new entry is created, but "carries forward" a
> report 
> of the memory requirements of earlier variants, so
> if you
> have 10 cursors, they don't report 10 units of
> memory, but
> 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 units. It is 
> possible that you are seeing some effect like this. 
> 
> 
> 
> 
> Regards
> 
> Jonathan Lewis
> http://www.jlcomp.demon.co.uk
> 
>   The educated person is not the person 
>   who can answer the questions, but the 
>   person who can question the answers -- T. Schick
> Jr
> 
> 
> One-day tutorials:
> http://www.jlcomp.demon.co.uk/tutorial.html
> 
> 
> Three-day seminar:
> see http://www.jlcomp.demon.co.uk/seminar.html
> ____UK___November
> 
> 
> The Co-operative Oracle Users' FAQ
> http://www.jlcomp.demon.co.uk/faq/ind_faq.html
> 
> 
> ----- Original Message ----- 
> To: "Multiple recipients of list ORACLE-L"
> <[EMAIL PROTECTED]>
> Sent: Tuesday, December 23, 2003 5:09 PM
> 
> 
> > Thomas,
> > 
> > The version count is the number of child cursors
> > present in the cache for this SQL.  The cursor is
> > not being shared for some reason with 456
> versions.
> > 
> > The 400m of memory seems a bit excessive.
> > 
> > There is a script at Jonathan's site with some
> info
> > about v$sqlarea and a script you can run that
> looks
> > at the current memory requirements for a SQL
> statement.
> > 
> > http://www.jlcomp.demon.co.uk/sqlarea.html
> > 
> > Does the output match what you see in statspack?
> > 
> > Also, the number of executions is much lower than
> > the version count, which is rather odd.  There's a
> bug
> > in early 9i versions that would cause this, but
> was
> > supposed to be corrected by 9.2.0.2.
> > 
> > In experimenting with this, I managed to get 4
> different 
> > sessions to create 2 versions of a cursor.  I'm
> not sure 
> > why as it was pl/sql and variables were used for
> the calling
> > parameters.
> > 
> > A 'select * from v$sql_shared_cursor' did not
> reveal any
> > reason for it.  
> > 
> > After bouncing the database and trying this again,
> I couldn't
> > duplicate it. 
> > 
> > Maybe a couple of things to pursue here, but
> perhaps not
> > an abundance of help. :(
> > 
> > Jared
> > 
> > 
> > 
> > On Tue, 2003-12-23 at 04:44, Thomas Jeff wrote:
> > > Jared,
> > > 
> > > Digging into it more, I found out that it's
> called from an 
> > > Informatica client.   Apparently, the gist of
> the client-side 
> > > algorithim is as follows:
> > > 
> > > For each row in (some view)
> > >    Call generate_product_keys
> > >    MERGE (upsert) into product table
> > > end loop
> > > 
> 
> -- 
> Please see the official ORACLE-L FAQ:
> http://www.orafaq.net
> -- 
> Author: Jonathan Lewis
>   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). 

______________________________________________________________________ 
Post your free ad now! http://personals.yahoo.ca
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Boris Dali
  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