Re: Insert performance for large transaction with multiple COPY FROM

From: Claudio Freire <klaussfreire(at)gmail(dot)com>
To: Horst Dehmer <horst(dot)dehmer(at)gmail(dot)com>
Cc: postgres performance list <pgsql-performance(at)postgresql(dot)org>
Subject: Re: Insert performance for large transaction with multiple COPY FROM
Date: 2013-01-12 01:17:59
Message-ID: CAGTBQpavK111WhRZYk1pfRsv3ixn-VnQKD1EZbbD=Yg-y4pZ+Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On Fri, Jan 11, 2013 at 8:55 PM, Horst Dehmer <horst(dot)dehmer(at)gmail(dot)com> wrote:
> Except - and that's the wall I'm hitting - for one table which yielded just
> 75 records/second.
> The main 'problem' seem to be the FK constraints. Dropping just them
> restored insert performance for this table to 6k records/s. The table in
> question has a composite PK (3 columns), 3 foreign keys and a bunch of
> indexes (see table obj_item_loc at the end of the mail). Compared to the
> other 32 tables nothing unusual.
> I'd gladly supply more information if necessary.
...
> CREATE TABLE obj_item_loc
> (
> obj_item_id numeric(20,0) NOT NULL,
> loc_id numeric(20,0) NOT NULL,
> obj_item_loc_ix numeric(20,0) NOT NULL,

That sounds a lot like a missing index on the target relations (or
indices that are unusable).

Those numeric ids look really unusual. Why not bigint? It's close to
the same precision, but native, faster, more compact, and quite
unambiguous when indices are involved. If the types don't match on
both tables, it's quite likely indices won't be used when checking the
FK, and that spells trouble.

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Horst Dehmer 2013-01-12 20:16:02 Re: Insert performance for large transaction with multiple COPY FROM
Previous Message Jeff Janes 2013-01-12 01:17:40 Insert performance for large transaction with multiple COPY FROM