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

Home -> Community -> Usenet -> c.d.o.server -> Re: Does oracle db serialize concurrent read-only SELECT ?

Re: Does oracle db serialize concurrent read-only SELECT ?

From: Jung Tjong <jtjong_at_cisco.com>
Date: Tue, 17 Apr 2001 13:07:46 -0700
Message-ID: <3ADCA291.28BB234@cisco.com>

Jonathan,

The table I'm querying has only about 3000 records containing rows that have only about 15 int and string columns, totalling to about .5k bytes. I did a select on all rows, so now where clause. It's a very simple query.

My test program takes only a few % of the cpu while running, and each of the spawned process / connection seems to take only 0.x % of the cpu. I don't see any abnormal disk accesses. So I don't think it is straining the SUN ultra-60 server that I'm running this on.
The same test on MySQL database took nearly the same time whether I run one query or multiple concurrent queries.

Jung

Jonathan Lewis wrote:

> Oracle does not do anything to serialized
> read-only queries - however you could get
> this type of behaviour if you query were
> CPU bound or I/O bound in the first place.
>
> Are you running a small volume query
> to do the test, or are you (for example)
> running a tablescan across a 256MB
> table as the base query ?
>
> --
> Jonathan Lewis
> Yet another Oracle-related web site: http://www.jlcomp.demon.co.uk
>
> Practical Oracle 8i: Building Efficient Databases
> Publishers: Addison-Wesley
>
> Reviews at: http://www.jlcomp.demon.co.uk/book_rev.html
>
> Jung Tjong wrote in message <3ADC8EDF.28D814E2_at_cisco.com>...
> >I'm new to Oracle, and while testing multiple
> >concurrent select request I found that
> >the server seems to serialize cursor SELECT done from multiple
> >threads or processes, Java (jdbc) or C++ (oci).
> >
> >There is no write operations on the table,
> >so there should not be any lock on it.
> >I'm doing a simple SELECT from 1 table and
> >measure the time it takes to execute the select and fetch
> >all the rows. The result of N concurrent SELECT are
> >approximately N times a single SELECT.
> >
> >I'm using ORACLE 8i - (No parallel server)
> >I tried changing server parameters that may relate to this:
> > max_cursor
> > processes
> > open_links
> > mts_servers
> > parallel_max_servers
> > parallel_threads_percpu
> >I tried changing connection network parameters in the listener.ora,
> >sqlnet.ora and tnsnames.ora files
> > server = shared
> > server = dedicated
> >
> >The results are still the same.
> >I heard that the server process is single threaded, but
> >I did set the mts_servers to N, I see the database started-up
> >N ora_sxxxx_<i>dbname</i> processes.
> >In addition for each connection I open I see that it spawn
> >one oracle<i>dbname</i> process. This seems to be the case
> >whether I set the parameter for DEDICATED or MTS.
> >I don't know which process is serializing the request.
> >
> >It's hard to believe that this is how it is supposed to behave,
> >or is it ? What do I need to do to improve this ?
> >
> >Thanks
> >
> >
Received on Tue Apr 17 2001 - 15:07:46 CDT

Original text of this message

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