From: | Michael Meskes <meskes(at)postgresql(dot)org> |
---|---|
To: | Jorma O(dot) Tähtinen <jotahtin(at)alpha(dot)hut(dot)fi> |
Cc: | pgsql-interfaces(at)postgresql(dot)org |
Subject: | Re: ecpg: how select/insert n rows (array) in one query |
Date: | 2000-06-14 15:21:36 |
Message-ID: | 20000614172136.A1866@fam-meskes.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-interfaces |
On Sat, Jun 10, 2000 at 05:49:42PM +0300, Jorma O. Tähtinen wrote:
> 1) select - this is simple (well documented)
> ...
> EXEC SQL BEGIN DECLARE SECTION;
> struct data_t {
> char md5[100][32];
> int size[100];
> } data;
> ...
> Only question here is: why can't I declare that data struct like
> struct data_t {
> char md5[32];
> int size;
> } data[100];
> Is this possible and how to use it.
Hmm, it certainly should be possible. I will look into it as soon as I find
some spare time. I do not remember if there was a real problem with this.
> if I have understod docs correctly : use of insert like select in
> about example is NOT possible
> please somebody say that I'm wrong - small example would be nice to
> see ;-)
selects work because the backend returns more than one tuple at a time.
However, inserts do not work that way. An SQL insert command is designed to
insert one tuple. I wouldn't know which syntax to use to do that sort of
bulk loading.
> And yes I have tried to insert multiple rows in one transaction
> block like
> EXEC SQL BEGIN TRANSACTION
> for(....) {
> insert .....
> }
> EXEC SQL COMMIT
>
> but this is still way to slow at max 50-100 insert per sec. I
> understand that inserting is slow operation
Try starting the backend without -F and putting each insert into its own
transaction. Keeping lots of updates/insert in one transaction always slows
down a system. The very same would happen to mysql if it used transactions.
> And yes, I really want to use c+embedded sql code to do inserting
> (real app/table struct of course more complex)
If this is a ecpg problem we surely will fix it. But I doubt the performance
is better when using psql to enter the data.
Michael
--
Michael Meskes
Michael(at)Fam-Meskes(dot)De
Go SF 49ers! Go Rhein Fire!
Use Debian GNU/Linux! Use PostgreSQL!
From | Date | Subject | |
---|---|---|---|
Next Message | Vincent Trussart | 2000-06-14 18:41:54 | Postgres JDBC driver : problem with timestamps. |
Previous Message | Jason Doller | 2000-06-14 07:19:46 | Re: Problem with ODBC (6.50), PostgreSQL 7.0.2 and MS Access |