El mar, 29-12-2009 a las 11:20 -0500, Bill Moran escribió: > In response to "Leonardo M." Ramé <l.rame@xxxxxxxxxxx>: > > > 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/ > Thanks Bill, I'll take a look at my app. I hope the problem is on my side, the worst case would be the cause of the problem is on the connection component I'm using to connect to Postgres (the app is written in Delphi with Zeos Lib). -- Leonardo M. Ramé Griensu S.A. - Medical IT Córdoba Tel.: 0351-4247979 -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general