Re: DDL commands take forever - Mailing list pgsql-general

From Bill Moran
Subject Re: DDL commands take forever
Date
Msg-id 20091229112043.f0ee5f49.wmoran@potentialtech.com
Whole thread Raw
In response to DDL commands take forever  ("Leonardo M." Ramé <l.rame@griensu.com>)
Responses Re: DDL commands take forever  ("Leonardo M." Ramé <l.rame@griensu.com>)
List pgsql-general
In response to "Leonardo M." Ramé <l.rame@griensu.com>:

> Hi, I need to create a trigger on a table used by our sofware, the
> problem is, when I issue a "create trigger...." on this table, it takes
> forever. It doesn't matter if I use pgAdmin, or psql.
>
> The only way to do it is by disconnecting all the instances of the
> program from the database, execute the DDL command, and reconnect the
> program again.
>
> What can be causing this behavior? any workaround?.

Most likely those programs have locks out that are causing the DDL command
to have to wait until the locks clear.

Disconnecting everyone is the quick workaround.

The real fix is to ensure that your application doesn't hold onto DB locks
longer than is needed, which won't guarantee that everything moves fast,
but will help immensely.  Often this is caused by the application holding
transactions open for long periods of time, which is a bad idea anyway
since it interferes with vacuum and other maintenance operations.

You can look at the pg_locks table to see what locks are out, to help you
diagnose what apps are holding locks open.

--
Bill Moran
http://www.potentialtech.com
http://people.collaborativefusion.com/~wmoran/

pgsql-general by date:

Previous
From: "Leonardo M." Ramé
Date:
Subject: DDL commands take forever
Next
From: akp geek
Date:
Subject: Comparing 2 databases