Re: Insert performance for large transaction with multiple COPY FROM - Mailing list pgsql-performance

From Claudio Freire
Subject Re: Insert performance for large transaction with multiple COPY FROM
Date
Msg-id CAGTBQpavK111WhRZYk1pfRsv3ixn-VnQKD1EZbbD=Yg-y4pZ+Q@mail.gmail.com
Whole thread Raw
In response to Insert performance for large transaction with multiple COPY FROM  (Horst Dehmer <horst.dehmer@gmail.com>)
Responses Re: Insert performance for large transaction with multiple COPY FROM  (Horst Dehmer <horst.dehmer@gmail.com>)
Re: Insert performance for large transaction with multiple COPY FROM  (Jeff Janes <jeff.janes@gmail.com>)
List pgsql-performance
On Fri, Jan 11, 2013 at 8:55 PM, Horst Dehmer <horst.dehmer@gmail.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.


pgsql-performance by date:

Previous
From: Jeff Janes
Date:
Subject: Insert performance for large transaction with multiple COPY FROM
Next
From: Horst Dehmer
Date:
Subject: Re: Insert performance for large transaction with multiple COPY FROM