Re: ecpg: how select/insert n rows (array) in one query
От | Michael Meskes |
---|---|
Тема | Re: ecpg: how select/insert n rows (array) in one query |
Дата | |
Msg-id | 20000614172136.A1866@fam-meskes.de обсуждение исходный текст |
Ответ на | ecpg: how select/insert n rows (array) in one query ("Jorma O. Tähtinen" <jotahtin@alpha.hut.fi>) |
Список | 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@Fam-Meskes.De Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!
В списке pgsql-interfaces по дате отправления: