Re: How to speedup inserts via ADO ?

Поиск
Список
Период
Сортировка
Искать
От
Arnaud Lesauvage
Тема
Re: How to speedup inserts via ADO ?
Дата
Msg-id
4B7A68B6.2040302@codata.eu
Ответ на
Список
Дерево обсуждения
How to speedup inserts via ADO ? Arnaud Lesauvage <arnaud.listes@codata.eu>
Re: How to speedup inserts via ADO ? Hiroshi Inoue <inoue@tpf.co.jp>
Re: How to speedup inserts via ADO ? Hiroshi Inoue <inoue@tpf.co.jp>
Re: How to speedup inserts via ADO ? Arnaud Lesauvage <arnaud.listes@codata.eu>
Re: How to speedup inserts via ADO ? Arnaud Lesauvage <arnaud.listes@codata.eu>
Re: How to speedup inserts via ADO ? "Relyea, Mike" <Mike.Relyea@xerox.com>
Le 16/02/2010 4:57, Hiroshi Inoue a écrit :
> Arnaud Lesauvage wrote:
>>  Inserts via ODBC are a lot slower than via native psql connection.
>>  For instance, I have a very basic insert statement that inserts one row
>>  in a table.
>>  If I execute it 1000 times in pgAdmin, it returns in 718ms.
>>  If I execute it via ADO (with a direct query : Connection.Execute
>>  "INSERT INTO..."), it takes 15s to complete.
>>
>>  I checked psqlODBC's commlog, but all I see in it are the INSERT
>>  statements that I issued. So there must be a lot of overhead somewhere,
>>  but I don't understand where it comes from, and more important I don't
>>  understand how I could get rid of it.
>>
>>  Are there some connection parameters that I could use to speed things up ?
>
> 1. Do inserts in a transction.
> 2. Set the "Level of rollback on errors" option to Transacion.
> 3. Use a prepared Command object.


1. I think I tried this, but do you mean that I should issue "BEGIN" 
and "COMMIT" statements manually (via my connection's "execute" method), 
or should I use ADO's BeginTrans and CommitTrans method on the connection ?
2. OK I think I haven't tried this, I left it to the default setting (no 
idea what this is)
3. OK I could try this, but the table is very large and this would be 
very cumbersome to code. That would be a command with about 100 
parameters, I'd rather just issue a "INSERT INTO pgsql_table SELECT * 
FROM local-table".

I'll activate mylog also. I thought that commlog was enough but I forgot 
about mylog.

Regards
--
Arnaud
В списке pgsql-odbc по дате отправления
От: Hiroshi Inoue
Дата:
От: Arnaud Lesauvage
Дата:
FAQ