Carlos A. Garc铆a

Diferencias entre bucles

Autor: Carlos A. Garc铆a. Archivado en Oracle
Etiquetas:
16/jul/2008  

Ayer estuve comentando un tema que me pareci贸 interesante: obtener intervalos de tiempo entre dos sucesos utilizando el tipo de datos INTERVAL DAY TO SECOND. Haciendo pruebas, he corroborado lo que parece evidente a primera vista: en Oracle un bucle FOR..LOOP es m谩s r谩pido que un WHILE..LOOP que dependa de un contador. Es decir, el c贸digo:

v_begin := SYSTIMESTAMP;
i := 0;
while i聽 < 100000000 LOOP
i := i + 1;
END LOOP;
v_end := SYSTIMESTAMP;

tarda 17 segundos en ejecutarse, mientras que:

v_begin := SYSTIMESTAMP;
for i in 0..100000000 LOOP
null;
END LOOP;
v_end := SYSTIMESTAMP;

tarda algo menos de 3 segundos. Es decir, m谩s de 5 veces m谩s r谩pido. Como dir铆a un famoso cantante: “que no es lo mismo”.





Art铆culos relacionados

  • No hay art铆culos relacionados


 Suscríbete a los comentarios de este post.  Comentarios

Dejar comentario

  1. Oracle - pl/sql - rendimiento de bucles - loop performance « edusanver - Blog de Eduardo Sanchez Vera dice:
    21 de julio de 2008 a las 13:59

    [...] Via: http://www.balearsinnovacio.com/blog/?p=490 [...]

  2. Carlos A. Garc铆a dice:
    21 de julio de 2008 a las 14:46

    Gracias por ampliar de forma tan interesante el post, Edu. Incluyo tu blog en mis referencias, jejeje. Por cierto, a ver si nos vemos y nos tomamos unas ca帽itas


Deja tu comentario








* Campos obligatorios  




2 comentarios »