Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Multi-threaded OCI Application Does Not Scale

Re: Multi-threaded OCI Application Does Not Scale

From: Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk>
Date: Mon, 27 Jan 2003 21:45:21 -0000
Message-ID: <b149ag$bru$1$8300dec7@news.demon.co.uk>

"SQL*Net more data from client"
is usually related to things like array inserts, or large lists of bind variables. It is similar to 'SQL*Net message from client' in that the server cannot proceed until a message comes in from the client.

As Alexander suggested in his last post, this looks like some sort of scheduling/blocking issue with the way that threads are working - particularly with regard to global memory. Certainly it seems to be a client-library issue, and has nothing to do with the server-side code.

One 'trick' that might help is to reduce the array size you are using, and increase the SDU (session data unit) size in the tnsnames.ora and listener.ora. If you can set these so that a complete array can pass in one unit, it may bypass the issue. This, by the way, is just a guess and something to fiddle with - and not an observation based on experience.

--
Regards

Jonathan Lewis
http://www.jlcomp.demon.co.uk

Coming soon a new one-day tutorial:
Cost Based Optimisation
(see http://www.jlcomp.demon.co.uk/tutorial.html )

____UK_______March
____USA_(FL)_May


Next Seminar dates:
(see http://www.jlcomp.demon.co.uk/seminar.html )

____USA_(CA, TX)_August


The Co-operative Oracle Users' FAQ
http://www.jlcomp.demon.co.uk/faq/ind_faq.html


Cary Lapoint wrote in message
<6b0e1783.0301271317.7bc97598_at_posting.google.com>...

>Acting upon previous suggestions, I have monitored V$SESSION_WAIT and
>V$SESSION_EVENT during program execution and have learned the
>following. The primary wait events in decreasing order of
TIME_WAITED
>are "SQL*Net more data from client", "SQL*Net message from client,"
>"log file sync," and "log buffer space." Together these wait events
>account for over 98% of total TIME_WAITED. To compare the behavior
of
>threads vs. processes, I tested once using 1 process (3
>threads/process) and once with 3 processes (1 thread/process). For
>most of the wait events, there was only slight variation in the
>average wait time. However, for the most important wait event the
>average wait time was 42.4 ms using multiple threads and only 17.3 ms
>using multiple processes. This finding suggests that the scaling of
>the "SQL*Net more data from client" wait event is responsible for the
>poor scaling behavior of my program's import rate (plan to verify
this
>by studying N = 1, 2, and 4). Can anyone else (Jonathan?) provide
>further insight? Thanks.
>
>Cary
>
>
Received on Mon Jan 27 2003 - 15:45:21 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US