O'Reilly and PL/SQl Programming almost ALWAYS means the author is
Steven Feuerstein


--- [EMAIL PROTECTED] wrote:
> John,
> 
>     You would have to ask while I've got the book at home.  But it's
> an Orielly
> book on PL/SQL Programming.  Sorry off the top of my head I can't
> remember the
> author or title.
> 
> Dick Goulet
> 
> ____________________Reply Separator____________________
> Author: John Dunn <[EMAIL PROTECTED]>
> Date:       9/6/2002 7:38 AM
> 
> Despite the importance of using bind variables, the Oracle
> documentation
> seems to make very little reference to how to use them(for example
> the
> PL/SQL manual)
> 
> Can anyone point me at any decent documentation on the subject of
> using bind
> variables in PL/SQL?
> 
> John
> 
> 
> 
> > -----Original Message-----
> > From: Nicoll, Iain (Calanais) [SMTP:[EMAIL PROTECTED]]
> > Sent: 06 September 2002 15:23
> > To:   Multiple recipients of list ORACLE-L
> > Subject:      RE: Must Read for Every Developer and DBA 
> > 
> > I thought that bind variables were faster but you always have to
> ensure
> > that
> > if you're accessing by data which may be heavily skewed and
> histograms
> > would
> > usually help you may not want to use bind variables as they will
> disable
> > the
> > use of histograms.
> > 
> > In saying that it doesn't look as though that would be the case
> here.
> > 
> > Iain Nicoll
> > 
> > -----Original Message-----
> > Sent: Friday, September 06, 2002 2:33 PM
> > To: Multiple recipients of list ORACLE-L
> > 
> > 
> > Hello Vikas,
> > 
> > As You said We should always make use of bind variables as it
> executes
> > faster as compare to the statements where we do not
> > make use of bind variables.
> > 
> > Q1) Can you please take a more specific example as how a statement
> can be
> > altered to make use of bind variable.
> > 
> > Q2) I made use of SELECT SQL_TEXT FROM V$SQLAREA WHERE ROWNUM < 5
> to get
> > few
> > samples for you 
> > 
> > These are as follows 
> > 
> > UPDATE   CNST_QUEUE   SET      PROCESS = -1     ,USER_ID ='A101675'
> > ,DATE_QUEUED = sysdate  WHERE      AWB_PREFIX
> >  = '125'  AND      AWB_NUMBER  = 67557405  AND      AWB_SUFFIX  = '
>  '
> > AND
> > PROCESS = 1 AND    USER_ID = 'A101675'
> > 
> > UPDATE   CNST_QUEUE   SET      PROCESS = -1     ,USER_ID =
> 'A101675'
> > ,DATE_QUEUED = sysdate  WHERE      AWB_PREFIX
> >  = '125'  AND      AWB_NUMBER  = 68221156  AND      AWB_SUFFIX  = '
>  '
> > AND
> > PROCESS = 1 AND      USER_ID = 'A101675'
> > 
> > UPDATE   CNST_QUEUE   SET      PROCESS = -1     ,USER_ID ='A105722'
> > ,DATE_QUEUED = sysdate  WHERE      AWB_PREFIX
> >  = '125'  AND      AWB_NUMBER  = 67557405  AND      AWB_SUFFIX  =
> 'A '
> > AND
> > PROCESS = 1 AND      USER_ID = 'A105722'
> > 
> > UPDATE   CNST_QUEUE   SET      PROCESS = -1     ,USER_ID =
> 'A105722'
> > ,DATE_QUEUED = sysdate  WHERE   AWB_PREFIX = '125'  AND     
> AWB_NUMBER  =
> > 67557416  AND      AWB_SUFFIX  = '  '  AND      PROCESS = 1 AND
> > USER_ID
> > = 'A105722
> > 
> > How can I Introduce bind variables in these statements ?
> > 
> > I may be sending a wrong SAMPLE as I feel I should apply your
> remove
> > constant function and then send few SQL statements
> > 
> > Warm Regards,
> > Om
> > 
> > In your case -- you are NOT using bind variables. 
> > 
> > Taking your update statement here:
> > 
> >  UPDATE   CNST_QUEUE   SET      PROCESS = -1     ,USER_ID =
> 'A101675'
> > ,DATE_QUEUED = sysdate  WHERE      AWB_PREFIX
> >  = '125'  AND      AWB_NUMBER  = 67557405  AND      AWB_SUFFIX  = '
>  '
> > AND
> > PROCESS = 1 AND      USER_ID = 'A101675'
> > 
> > that SHOULD BE recoded in the application to become : 
> > 
> > update cnst_queue set process = :b1, user_id = :b2, date_queued =
> sysdate,
> > where awb_prefix = :b3
> >    and awb_number = :b4
> >    and awb_suffix = :b5
> >    and awb_process = :b6
> >    and user_id = :b7;
> > 
> > and bind in those values before you execute this statement. There
> are ways
> > in which it could be done and vary from language to language and
> > environment
> > to environment but they ALL support it.  You MUST do this. In this
> > case,the
> > first time you execute this statement you need to parse this
> statement
> > (HARD
> > PARSING) and once the execution plan gets into the SHARED POOL
> > (V$libraryCache) the other users can use this to great effect. They
> would
> > not reparse this statement again and again and but does do the soft
> > parsing
> > of it. So One Parse may lead to MANY executions instead of 1
> Parsing <-> 1
> > Execution.
> > 
> > At least 90% of your database execution time is spent PARSING and
> > OPTIMIZING
> > that update -- 10% is spent actually DOING it.  If you use bind
> variables
> > --
> > very little time will be spent parsing (you can get that statement
> to
> > execute in 1/10 of the time).  Not only that -- but the concurrency
> and
> > scalability of your database will go WAY up.
> > 
> > This is the root cause of your issues, this must be fixed -- no
> questions
> > about it.    
> > 
> > Vikas Khanna 
> > -- 
> > Please see the official ORACLE-L FAQ: http://www.orafaq.com
> > -- 
> > Author: Vikas Khanna
> >   INET: [EMAIL PROTECTED]
> > 
> > Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
> > San Diego, California        -- Public Internet access / Mailing
> Lists
> >
> --------------------------------------------------------------------
> > 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).
> > -- 
> > Please see the official ORACLE-L FAQ: http://www.orafaq.com
> > -- 
> > Author: Nicoll, Iain \(Calanais\)
> >   INET: [EMAIL PROTECTED]
> > 
> > Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
> > San Diego, California        -- Public Internet access / Mailing
> Lists
> >
> --------------------------------------------------------------------
> > 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).
> 
=== message truncated ===


__________________________________________________
Do You Yahoo!?
Yahoo! Finance - Get real-time stock quotes
http://finance.yahoo.com
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Rachel Carmichael
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
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