Hi all,

I have specific problem with DBIx update (Oracle driver). I need to update let say 200.000 rows. Each row should have different number of changed columns. DBIx->update creates request one by one like this: "update table set column1='value' where id=1". Query itself is really small (few bytes), but for each query is created packet. So I have to transfer 200.000 packets. Ping to DB server is 4ms, what mean that 1000 updates are done in 4 seconds and the job is done in 13 minutes. I need to somehow decrease number of packets, let say to send more updates at once. Do you have some idea how to do it? I don't care if update is success or not. Some kind of bulk update. My idea was to send all UPDATE queries as strings into storage procedure (let say per 10 queries). So I try to get this query from DBIx somehow as ResultSet->as_query (but this is not possible for update command).

Do you have any other ideas, how to send few update commands in one packet?

Many thanks.

--
*Martin (singer) Spevak*
HPES Software Development Engineer
HPES Network Management Solutions
Location: Galvaniho 7/A, Bratislava, Slovakia
Tel.: +421 2 5752 5390
Email: martin.spe...@hp.com
_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk

Reply via email to