Re: alter table TBL add constraint TBL_FK foreign key - Mailing list pgsql-performance

From Ron Johnson
Subject Re: alter table TBL add constraint TBL_FK foreign key
Date
Msg-id 1041408874.16580.39.camel@haggis
Whole thread Raw
In response to alter table TBL add constraint TBL_FK foreign key ... very slow  (Minghann Ho <Minghann.Ho@mcs.vuw.ac.nz>)
List pgsql-performance
On Tue, 2002-12-31 at 21:32, Minghann Ho wrote:
> Hi all,
>
> I've experienced very slow performance to add foreign key constraints using
> ALTER TABLE ADD CONSTRAINT FOREIGN KEY ...
>
> After using COPY ... FROM to load the base tables, I started to build the
> referential integrity between tables.
> I have 3 tables: T1 (6 million records), T2 (1.5 million records) and T3 (0.8
> million records).
> One of the RI - foreign key (T1 -> T2) constraint took about 70 hrs to build.
> The other RI - foreign key (T1 -> T3) constraint took about 200 hrs and yet
> completed!! (compound foreign key)
>
> I tried to use small subset of the tables of T2 and T3 to do the testing.
> An estimation show that it need about 960 hrs to build the RI - foreign key
> constraints on table T1 -> T3 !!!
>
> I've read in the archives that some people suffered slow performance of this
> problem in Aug 2000, but there was no further information about the solution.
>
> Please anyone who has experience in this issues can give me some hint.

Silly question: Are T2 & T3 compound-key indexed on the relevant foreign
key fields (in the exact order that they are mentioned in the ADD
CONSTRAINT command)?  Otherwise, for each record in T1, it is scanning
T2 1.5M times (9E12 record reads!), with a similar formula for T1->T3.

--
+------------------------------------------------------------+
| Ron Johnson, Jr.     mailto:ron.l.johnson@cox.net          |
| Jefferson, LA  USA   http://members.cox.net/ron.l.johnson  |
|                                                            |
| "Basically, I got on the plane with a bomb. Basically, I   |
|  tried to ignite it. Basically, yeah, I intended to damage |
|  the plane."                                               |
|    RICHARD REID, who tried to blow up American Airlines    |
|                  Flight 63                                 |
+------------------------------------------------------------+


pgsql-performance by date:

Previous
From: Stephan Szabo
Date:
Subject: Re: alter table TBL add constraint TBL_FK foreign key ...
Next
From: Tom Lane
Date:
Subject: Re: preliminary testing, two very slow situations...