From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Yacatematrix <yacatematrix(at)gmail(dot)com> |
Cc: | Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: TRUNCATE y tiempos |
Date: | 2007-03-12 19:34:23 |
Message-ID: | 20070312193423.GD7700@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Yacatematrix escribió:
> Hola listeros!!!
>
> Espero esten bien!!!
>
> El motivo de este mail es por la siguiente duda.
>
> Tengo montado Postgresql 8.2.3 sobre un win2003 server y depsues de realizar
> algunas transacciones debo realizar TRUNCATE a algunas tablas y se queda
> pasamado, asi que debo cancelar la transaccion, reiniciar el servicio y
> repetir el proceso y solo asi funciona sin problemas. Alguien sabe a que se
> debe eso?? Me seria de gran ayuda su apoyo.
Una operacion TRUNCATE es casi instantanea. Lo que se demora es obtener
el lock sobre la tabla que vas a truncar. Obviamente, si reinicias el
servicio matas todos los otros clientes, lo cual significa que el
TRUNCATE puede obtener el lock de inmediato, y por eso es mucho mas
rapido.
Creo que lo que debes hacer es averiguar quien esta dejando tomado el
lock durante tanto tiempo. Puedes usar la vista pg_locks para
averiguarlo.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From | Date | Subject | |
---|---|---|---|
Next Message | felix gonzales | 2007-03-12 19:46:07 | numero de dias hábiles |
Previous Message | Alvaro Herrera | 2007-03-12 19:25:44 | Re: Error 42601 al crear una funcion |