Re: alter table TBL add constraint TBL_FK foreign key ...
От | Stephan Szabo |
---|---|
Тема | Re: alter table TBL add constraint TBL_FK foreign key ... |
Дата | |
Msg-id | 20021231193351.U68640-100000@megazone23.bigpanda.com обсуждение исходный текст |
Ответ на | alter table TBL add constraint TBL_FK foreign key ... very slow (Minghann Ho <Minghann.Ho@mcs.vuw.ac.nz>) |
Список | pgsql-performance |
On Wed, 1 Jan 2003, Minghann Ho wrote: > 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 !!! It's running the constraint check for each row in the foreign key table. Rather than using a call to the function and a select for each row, it could probably be done in a single select with a not exists subselect, but that hasn't been done yet. There's also been talk about allowing some mechanism to allow the avoidance of the create time check, but I don't think any concensus was reached.
В списке pgsql-performance по дате отправления: