Обсуждение: performance error

Поиск
Список
Период
Сортировка

performance error

От
Дата:

Hi to all,

I downloaded the last win32-snapshot and got it all in a ready state.

After that I created a simple testtable like

CREATE TABLE public.testdaten1

(

 id int4 NOT NULL,

 name varchar(20),

 firstname varchar(20),

 CONSTRAINT testdaten1_pkey PRIMARY KEY (id)

) WITH OIDS;


GRANT ALL ON TABLE public.testdaten1 TO public;


Now I tested a simple c++ program which, do many inserts within a for-loop (connected over ODBC)

I'm not sure but I think the performance is not very well (it's really bad)

cpu-usage between 0 and 5 %


harddisc is permanently busy but the inserting-process is very slow (50000 records in 30 minutes)

Are there any ideas to get rid of this problem ?

Regards tom



Вложения

Re: performance error

От
"Magnus Hagander"
Дата:
Hi!
 
First of all, anything that is insert-only is certainly to be I/O bound, and not CPU bound, so it really doesn't surprise me that much. Also, you will normally get drastically better performance if you wrap the INSERT statements in a transaction.
 
Finally, remember that the win32 port is very much under development. There are certainly several points where it can be perfromance optimised, but we're not quite there yet.
 
An interesting thing might also be a comparison between this and a straight libpq program. I have no idea what the overheard of the ODBC driver is. I doubt it's something you'd noticei n this scenario, but it's not totally impossible.
 
//Magnus
 
-----Original Message-----
From: Tom.Zschockelt@flender.com [mailto:Tom.Zschockelt@flender.com]
Sent: Wednesday, March 31, 2004 1:01 PM
To: pgsql-hackers-win32@postgresql.org
Subject: [pgsql-hackers-win32] performance error


Hi to all,

I downloaded the last win32-snapshot and got it all in a ready state.

After that I created a simple testtable like

CREATE TABLE public.testdaten1

(

 id int4 NOT NULL,

 name varchar(20),

 firstname varchar(20),

 CONSTRAINT testdaten1_pkey PRIMARY KEY (id)

) WITH OIDS;


GRANT ALL ON TABLE public.testdaten1 TO public;


Now I tested a simple c++ program which, do many inserts within a for-loop (connected over ODBC)

I'm not sure but I think the performance is not very well (it's really bad)

cpu-usage between 0 and 5 %


harddisc is permanently busy but the inserting-process is very slow (50000 records in 30 minutes)

Are there any ideas to get rid of this problem ?

Regards tom