I am using Asynchronous Query Processing interface from libpq library.
And I got some strange results on Solaris
My test select query is 'SELECT * from pg_user;'
and I use select system synchronous I/O multiplexer in 'C'
The first test sends 10000 select queries using 10 nonblocking connections
to database ( PQsendQuery ).
The second test sends the same 10000 select queries using 1 connection (
PQexec ).
On FreeBSD there is a huge difference between the async and the sync tests.
The async test is much faster than sync test.
On Solaris there is no speed difference between async and sync test,
actually async test is even slower than sync test.
Q. Why ?
On FreeBSD:
/usr/bin/time ./PgAsyncManager async
async test start ... 10000 done
9.46 real 3.48 user 1.25 sys
/usr/bin/time ./PgAsyncManager sync
sync test start ... 10000 done
22.64 real 3.35 user 1.24 sys
On Solaris:
/usr/bin/time ./PgAsyncManager async
async test start ... 10000 done
real 20.6
user 2.1
sys 0.4
/usr/bin/time ./PgAsyncManager sync
sync test start ... 10000 done
real 18.4
user 1.1
sys 0.5