Skip site navigation (1) Skip section navigation (2)

Re: adding foreign key constraint locks up table

From: Gurjeet Singh <singh(dot)gurjeet(at)gmail(dot)com>
To: kakarukeys <kakarukeys(at)gmail(dot)com>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: adding foreign key constraint locks up table
Date: 2010-12-28 13:37:33
Message-ID: AANLkTimuC13j-cvPr57k6PDCv1=BUMZLb90qs_gznbmh@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-performance
On Tue, Dec 28, 2010 at 2:08 AM, kakarukeys <kakarukeys(at)gmail(dot)com> wrote:

> I have a table "aaa" which is not very big. It has less than 10'000
> rows. However read operations on this table is very frequent.
>
> Whenever I try to create a new table "bbb" with foreign key pointing
> to "aaa". The operation locks, and reading "aaa" is not possible. The
> query also never seems to finish.
>
> ALTER TABLE "bbb" ADD CONSTRAINT "topic_id_refs_id_3942a46c6ab2c0b4"
> FOREIGN KEY ("topic_id") REFERENCES "aaa" ("id") DEFERRABLE INITIALLY
> DEFERRED;
>
> The current workaround is to create any new table at off-peak hours,
> e.g. midnight after restarting the db.
>
> I would like to know if there's any proper solution of this. Is this
> an issue affecting all relational databases? My db is PostgreSQL 8.3.
>
>
how many rows does "bbb" have? And what are the data types of column
aaa.idand bbb.topic_id?

Creating a foreign key should not lock out aaa against reads. Can you
provide the output of the following:

select relname, oid from pg_class where relname in ( 'aaa', 'bbb' );

select * from pg_locks; -- run this from a new session when you think "aaa"
is locked by foreign key creation.

Regards,
-- 
gurjeet.singh
@ EnterpriseDB - The Enterprise Postgres Company
http://www.EnterpriseDB.com

singh(dot)gurjeet(at){ gmail | yahoo }.com
Twitter/Skype: singh_gurjeet

Mail sent from my BlackLaptop device

In response to

Responses

pgsql-performance by date

Next:From: kakarukeysDate: 2010-12-28 13:55:59
Subject: Re: adding foreign key constraint locks up table
Previous:From: LewDate: 2010-12-28 13:34:30
Subject: Re: adding foreign key constraint locks up table

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group