Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Does oracle db serialize concurrent read-only SELECT ?
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 - 13:43:43 CDT