Oracle - ¿que es mas rapido el caso A o el B?

 
Vista:

¿que es mas rapido el caso A o el B?

Publicado por Iriover (7 intervenciones) el 27/05/2008 09:40:29
-- CASO A
DELETE TABLA;
N_VECES := 100;
WHILE N_VECES > 0 LOOP
INSERT INTO TABLA (VALOR) VALUES (10);
N_VECES := N_VECES - 1;
END LOOP;
SELECT SUM(VALOR) INTO SUMA FROM TABLA;

-- CASO B
DELETE TABLA;
ACUM := 0;
N_VECES := 100;
WHILE N_VECES > 0 LOOP
INSERT INTO TABLA (VALOR) VALUES (10);
ACUM := ACUM + 10;
N_VECES := N_VECES - 1;
END LOOP;
SUMA := ACUM;

Si alguien fuese tan amable de ver los pros y contras a este respecto se lo agradeceria.
Gracias y un Saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿que es mas rapido el caso A o el B?

Publicado por Pedro (25 intervenciones) el 27/05/2008 11:56:48
Hola desde mi opinion, ni el caso A ni el caso B, todo depende de la informacion que kieras insertar y utilizar (me imagino que no vas a hacer una insert para solo sumar, pero bueno el tema de tu codigo es tuyo), si se puede evitar usar bucles siempre es muchisimos mejor si quires hacer inserts masivas mejor utilizar los insert .. as select ...,sobretodo si el volumen de datos es muy alto ( de 10000 parriba) ,en tu caso, atendiendo a lo que tu expones, ya que utilizas un bucle y sabes el nº total de registros (inicio y fin) es mejor utilizar un bucle FOR, ya que no tiene que validar en cada vuelta si se cumple la condición requerida. por tanto en mi opinion es mejor el caso C, XD

Espero haberte podido ayudar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar