2012/3/12 François Beausoleil <franc...@teksol.info>:
> Hi all,
>
> When using COPY FROM STDIN to stream thousands of rows (20k and more hourly), 
> what happens with indices? Are they updated only once after the operation, or 
> are they updated once per row? Note that I'm not replacing the table's data: 
> I'm appending to what's already there. I suspect batching writes will be 
> faster than writing each individual row using an INSERT statement.
>
> Currently, I can sustain 30-40 writes per second on a Rackspace VPS. I know 
> it's not the ideal solution, but that's what I'm working with. Following 
> vmstat, the server is spending 30 to 40% of it's time in iowait. I don't have 
> measurements as to what files are touched, and I'd welcome suggestions to 
> measure the time PostgreSQL actually spends writing indices vs data.

you're almost certainly blocking on fsync.  A real quick'n'dirty way
to confirm this (although it wont be as fast as COPY) would be to wrap
your inserts in a transaction.  VMs tend to have really horrible
storage latency which can hurt postgres performance.  Another option
would be to relax your commit policy (for example by flipping
synchronous_commit) if that fits within your safety requirements.

merlin

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to