Re: duda con insert de muchas filas

From: Lennin Caro <lennin(dot)caro(at)yahoo(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org, uno dos <refreegrata(at)yahoo(dot)com>
Subject: Re: duda con insert de muchas filas
Date: 2010-05-12 15:50:55
Message-ID: 777712.79436.qm@web59502.mail.ac4.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

--- On Wed, 5/12/10, uno dos <refreegrata(at)yahoo(dot)com> wrote:

From: uno dos <refreegrata(at)yahoo(dot)com>
Subject: [pgsql-es-ayuda] duda con insert de muchas filas
To: pgsql-es-ayuda(at)postgresql(dot)org
Date: Wednesday, May 12, 2010, 2:21 PM

Hola lista.

Primero, tengo postgresql 8.3.7

Ahora, tengo 2  dudas(dudas de novato)
La primera:
En una aplicación que estoy desarrollando tengo que hacer múltiples INSERT dentro de una transacción
 ¿que es más conveniente (En términos de rendimiento)?
   Hacer esto
      INSERT into tabla (campo 1,campo2)values(1,1)
      INSERT into tabla (campo 1,campo2)values(2,2)
      INSERT into tabla (campo 1,campo2)values(3,3)
      ....
      INSERT into tabla (campo 1,campo2)values(n,n)

 ¿ O hacer esto?
      INSERT into tabla (campo 1,campo2)values
(1,1),
                                                                       (2,2),
                                                                      
(3,3)
                                                                        ...
                                                                       (n,n)

Me interesa saber, cual instrucción es ejecutada más rápidamente por postgresql, o da
lo mismo?

Mi segunda pregunta
En caso de realizar la instrucción de esta manera:
--------------------------------------------------------------------------------------
INSERT into tabla (campo 1,campo2) values      (1,1),

                                                                       (2,2),

                                                                       (3,3)

                                                                        ...

                                                                       (n,n)
--------------------------------------------------------------------------------------
Hay algún problema con triggers before y los after insert or update?

o sea yo quiero que pase lo siguiente:
--------------------------------------------------------------------------------------

INSERT into tabla (campo 1,campo2) values   
               Ejecutar trigger before-->    (1,1), <----Ejecutar trigger after

               Ejecutar trigger before-->    (2,2), <----Ejecutar trigger after
               Ejecutar trigger before-->    (3,3), <----Ejecutar trigger after

                                                          ...
               Ejecutar trigger before-->    (n,n), <----Ejecutar trigger after

--------------------------------------------------------------------------------------
Es decir, lo que quiero, es que se ejecuten los trigger(los AFTER y los BEFORE) por cada fila insertada o actualizada en el momento en que sean insertadas y que no espere a que se ejecute el comando completamente.

me explico mejor:
Que no pase esto:
---------------------------------------------------------------------------------------
INSERT into tabla (campo 1,campo2) values      (1,1),

                                                                       (2,2),

                                                                       (3,3)

                                                                        ...

                                                                       (n,n)
Ejecutar trigger 1
Ejecutar trigger 2
Ejecutar trigger 3
....
Ejecutar trigger n
---------------------------------------------------------------------------------------

Bueno, espero puedan ayudarme.
Gracias por estar siempre ahí para responder a los más novatos.
Saludos

la diferencia entre la usar la instruccion insert por cada insercion y la de usar el insert en lote no es mucha. Si quieres mejor rendimiento usa la instruccion COPY

Si en el trigger usar for each row entonces se ejecutara por cada insert o update o delete

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Rodríguez Penabad 2010-05-12 16:22:12 Re: duda con insert de muchas filas
Previous Message uno dos 2010-05-12 15:27:50 optiminizacion de select (order by desc limit 1)