in reply to Stream data into Postgresql

I already answered most of your questions in the chatterbox but I'm following up for completeness and the archives. Prior to going farther with this you ought to read both of these links COPY and Populating a database. All it comes down to is COPY is faster than INSERT, indexes slow down copy/insert/update and doing things in batches is better than doing them one at a time. In practical terms that means you're almost right with this approach, it's just your execution that needs help.

First off you need to finish off your COPY command with print WRITEME "\\.\n". You aren't doing such a large load that it probably isn't going to matter if you break this into smaller chunks - 60K records is nothing (my experience anyway). If you were doing an actual large data load then you'd probably break every 10K or so, finish the current COPY, be sure the transaction was complete and start a new transaction/COPY. If you had indexes on the table (which you don't) then it might also be worth it to look at droping them while loading the data and re-instating them afterwards. But then, your instance doesn't merit going to such lengths.

__SIG__ use B; printf "You are here %08x\n", unpack "L!", unpack "P4", pack "L!", B::svref_2object(sub{})->OUTSIDE;