El día 9 de febrero de 2009 18:31, Alvaro Herrera
<[email protected]> escribió:
> Jaime Casanova escribió:
>> On Mon, Feb 9, 2009 at 3:03 PM, Alvaro Herrera <[email protected]> 
>> wrote:
>> > Raul Andres Duque escribió:
>> >
>> >> Si exacto. Entonces cambio mi pregunta ... es posible que CADA sentencia
>> >> en un pl/pgsql se ejecute dentro de SU PROPIA transacción implicita para
>> >> que no se abra una única GRAN transacción?
>> >
>> > No.
>>
>> y aun no puedo creer que esto sea mas rapido para ti...
>
> Es raro, pero en algunas situaciones puede pasar ... por ejemplo
> considera que puede haber una tabla temporal a la que se le esté
> haciendo muchos INSERT y UPDATE.  Si es una sola transaccion, autovacuum
> no puede trabajar sobre ella, en cambio si son muchas, puede limpiarla y
> así hacer que partes posteriores del proceso sean más rápidas.

También puede pasar con demasiados insert's y updates que los
controles de integridad referencial se ejecuten al final de la
transacción.
Si hay tablas que estaban vacías previamente y son llenadas con muchos
registros, al chequear los constraints el motor hace un plan
equivocado.
A mí me ha pasado esto con Postgres 7 ... nunca he tenido que
enfrentarme a ese problema con el 8.

Silvio
--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda

Responder a