With the advent of bulk bind and bulk collection
facilities in PL/SQL, you can get very close to the
"correct" SQL mechanisms...its just that not many
people tend to do it, and you end up with a gazillion
'one-row-at-a-time' applications out there.

Cheers
Connor

 --- Cary Millsap <[EMAIL PROTECTED]> wrote: >
Greg,
> 
> That's one case. PL/SQL is a really poor language in
> which to write an
> application. The language tricks you into believing
> that writing a
> scalable application can be accomplished in just a
> few lines of 4GL
> code, but it's really not true. To write scalable
> PL/SQL, you need to
> use DBMS_SQL. The resulting code is even more
> cumbersome than the same
> function written in Pro*C.
> 
> Any language can be abused, though. We see a lot of
> Java, Visual Basic,
> and Powerbuilder applications that do stuff like...
> 
> 1. Parse inside loops, using literals instead of
> bind variables.
> 2. Parse *twice* for each execute by doing
> describe+parse+execute.
> 3. Manipulate one row at a time instead of using
> array processing
> capabilities on fetches or inserts (this one,
> ironically, raises a
> system's BCHR while it kills response time).
> 4. Join result sets in the application instead of in
> the database.
> 
> 
> Cary Millsap
> Hotsos Enterprises, Ltd.
> http://www.hotsos.com
> 
> Upcoming events:
> - Hotsos Clinic, Dec 9-11 Honolulu
> - 2003 Hotsos Symposium on OracleR System
> Performance, Feb 9-12 Dallas
> - Jonathan Lewis' Optimising Oracle, Nov 19-21
> Dallas
> 
> 
> -----Original Message-----
> Sent: Saturday, November 16, 2002 2:38 AM
> To: Multiple recipients of list ORACLE-L
> 
> Cary,
> 
> Thank you.
> 
> Could you elaborate on the issue of excessive
> database calls, which show
> up
> as excessive network traffic?
> 
> I can picture a PL/SQL loop, which executes an SQL
> statement over and
> over
> again.  This would produce many database calls, and
> it might be possible
> to
> remove the loop altogether, replacing it with a
> single SQL statement.
> This
> would reduce the database calls.
> 
> Is this the "classic" type of situation that
> produces too many db calls?
> Or
> are there other situations I'm missing that are more
> likely to be the
> source
> of this problem?
> 
> Thanks again.
> 
> 
> 
> ----- Original Message -----
> To: "Multiple recipients of list ORACLE-L"
> <[EMAIL PROTECTED]>
> Sent: Friday, November 15, 2002 4:13 PM
> 
> 
> > Greg,
> >
> > I believe that the cultural root cause of the
> excessive LIO problem is
> > the conception that physical I/O is what makes
> databases slow. Disk
> I/O
> > certainly *can* make a system slow, but in about
> 598 of 600 cases
> we've
> > seen in the past three years, it hasn't. ["Why you
> should focus on
> LIOs
> > instead of PIOs" at www.hotsos.com/catalog]
> >
> > The fixation on PIO of course focuses people's
> attention on the
> database
> > buffer cache hit ratio (BCHR) metric for
> evaluating efficiency. The
> > problem is that the BCHR is a metric of INSTANCE
> efficiency, not SQL
> > efficiency. However, many people mistakenly apply
> it as a metric of
> SQL
> > efficiency anyway.
> >
> > Of course, if one's radar equates SQL efficiency
> with the BCHR's
> > proximity to 100%, then a lot of really bad SQL is
> going to show up on
> > your radar wrongly identified as really good SQL.
> ["Why a 99% buffer
> > cache hit ratio is not okay" at
> www.hotsos.com/catalog]
> >
> > One "classic" result is that people go on search
> and destroy missions
> > for all full-table scans. They end up producing
> more execution plans
> > that look like this than they should have:
> >
> >   NESTED LOOPS
> >     TABLE ACCESS BY INDEX ROWID
> >       INDEX RANGE SCAN
> >     TABLE ACCESS BY INDEX ROWID
> >       INDEX RANGE SCAN
> >
> > This kind of plan produces great hit ratios
> because it tends to
> revisit
> > the same small set of blocks over and over again.
> This kind of plan is
> > of course appropriate in many cases. But sometimes
> it is actually less
> > work in the database to use full-table scans.
> ["When to use an index"
> at
> > www.hotsos.com/catalog.]
> >
> >
> > Cary Millsap
> > Hotsos Enterprises, Ltd.
> > http://www.hotsos.com
> >
> > Upcoming events:
> > - Hotsos Clinic, Dec 9-11 Honolulu
> > - 2003 Hotsos Symposium on OracleR System
> Performance, Feb 9-12 Dallas
> > - Jonathan Lewis' Optimising Oracle, Nov 19-21
> Dallas
> >
> >
> > -----Original Message-----
> > Sent: Friday, November 15, 2002 4:39 PM
> > To: Multiple recipients of list ORACLE-L
> >
> > A while back someone mentioned that the two main
> causes of slow SQL
> are
> > excesive LIO's and excesscive database calls,
> which show up as
> excessive
> > CPU
> > use and excessive network traffic, respectively.
> >
> > Regarding the database calls, is there a "classic"
> reason for this
> > problem?
> >
> > My best guess is it's caused by an SQL statement
> in a PL/SQL loop,
> which
> > could be rewritten as a single SQL statement.  But
> is this the single,
> > commonly seen cause for this problem, or are there
> other common ways
> > this
> > inefficiency is introduced?
> >
> > Thanks in advance for help in understanding this.
> >
> > --
> > Please see the official ORACLE-L FAQ:
> http://www.orafaq.com
> > --
> > Author: Greg Moore
> >   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).
> >
> > --
> > Please see the official ORACLE-L FAQ:
> http://www.orafaq.com
> > --
> > Author: Cary Millsap
> >   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).
> 
> -- 
> Please see the official ORACLE-L FAQ:
> http://www.orafaq.com
> -- 
> Author: Greg Moore
>   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).
> 
> -- 
> Please see the official ORACLE-L FAQ:
> http://www.orafaq.com
> -- 
> Author: Cary Millsap
>   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). 

=====
Connor McDonald
http://www.oracledba.co.uk
http://www.oaktable.net

"GIVE a man a fish and he will eat for a day. But TEACH him how to fish, and...he will 
sit in a boat and drink beer all day"

__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: =?iso-8859-1?q?Connor=20McDonald?=
  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