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
