Re: DDL commands take forever

Поиск
Список
Период
Сортировка
От Bill Moran
Тема Re: DDL commands take forever
Дата
Msg-id 20091229112043.f0ee5f49.wmoran@potentialtech.com
обсуждение исходный текст
Ответ на DDL commands take forever  ("Leonardo M." Ramé <l.rame@griensu.com>)
Ответы Re: DDL commands take forever  ("Leonardo M." Ramé <l.rame@griensu.com>)
Список 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 по дате отправления:

Предыдущее
От: "Leonardo M." Ramé
Дата:
Сообщение: DDL commands take forever
Следующее
От: akp geek
Дата:
Сообщение: Comparing 2 databases