Thread: postgres 8 performance

postgres 8 performance

From
Paramveer.Singh@trilogy.com
Date:
Hi all!
I am running postgres 8 beta1 and for some reason it is really slow in
execution. I am not able to figure out why.
On a fresh install of postgres, the following code executed through jdbc


********************
for (int i=0; i < 10000; i++) {
                  s.execute("insert into tab values (" + i + ",'" + i +
"')") ;
}
****************


This took like 700 secs to execute.
However, the weird part is that a stored proc doing the same thing via


******************************
create or replace function perftest() returns integer as '
declare
      i integer := 0 ;
begin
      for i in 0..10000 loop
            execute ''insert into tab values ( '' || i || '' ,''''xxx''''
)'' ;
      end loop ;
      return  0;
end ;

does the same thing in less than a second.

*************************************


I can't figure out what the problem is.
The app using jdbc and the postmaster instance were running on the same
comp so I can't believe that communication would make that big a hit on
performance.

Is there something else that I am doing wrong?
Finally, where can I look up some useful performance tuning tips to get my
server to run faster anyway?

thanks a lot
paramveer singh



Re: postgres 8 performance

From
Pierre-Frédéric Caillaud
Date:
    Add a begin/commit on that so you dont have 10k transactions ?

BEGIN
> ********************
> for (int i=0; i < 10000; i++) {
>                   s.execute("insert into tab values (" + i + ",'" + i +
> "')") ;
> }
> ****************
COMMIT

Re: postgres 8 performance

From
Chris Mair
Date:
> I can't figure out what the problem is.
> The app using jdbc and the postmaster instance were running on the same
> comp so I can't believe that communication would make that big a hit on
> performance.

It's the query parsing that takes a lot of time.
You might want to look at prepared statements:
http://java.sun.com/docs/books/tutorial/jdbc/basics/prepared.html

Also set autocommit to off and do a hundert or so inserts inside
one transaction, not one transaction for each insert.

Bye, Chris.



Re: postgres 8 performance

From
Devrim GUNDUZ
Date:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


Hi,
On Tue, 7 Sep 2004 Paramveer.Singh@trilogy.com wrote:

<snip>
> Finally, where can I look up some useful performance tuning tips to get my
> server to run faster anyway?

* http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html
* http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html
* Join pgsql-perform list.

Regards,
- --
Devrim GUNDUZ
devrim~gunduz.org                devrim.gunduz~linux.org.tr
             http://www.tdmsoft.com
             http://www.gunduz.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQFBPY4ctl86P3SPfQ4RAuSaAJ0daOhwnIUVjwR1qmQu9GBeFTCB5wCfZdN/
xlW//4jr8EOIhZil1qyGYSY=
=QlCi
-----END PGP SIGNATURE-----

Re: postgres 8 performance

From
Paul Thomas
Date:
On 07/09/2004 11:12 Paramveer.Singh@trilogy.com wrote:
> Hi all!
> I am running postgres 8 beta1 and for some reason it is really slow in
> execution. I am not able to figure out why.
> On a fresh install of postgres, the following code executed through jdbc
>
> [snip]
> I can't figure out what the problem is.
> The app using jdbc and the postmaster instance were running on the same
> comp so I can't believe that communication would make that big a hit on
> performance.

Each of your JDBC inserts is being performed in a different transaction
whilst your stored procedure is being executed is a single transaction. If
you want to speed up the JDBC inserts, use setAutoCommit(false) on the
connection object then do a connection.commit() at the end. If you really
are taking 700 seconds, you've probably also got a network misconfiguration
somewhere as well. 50-100 seconds would be more realistic even on fairly
slow hardware.

--
Paul Thomas
+------------------------------+-------------------------------------------+
| Thomas Micro Systems Limited | Software Solutions for Business           |
| Computer Consultants         | http://www.thomas-micro-systems-ltd.co.uk |
+------------------------------+-------------------------------------------+