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
-
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 [...]
-
Carlos A. Garc铆a dice:
21 de julio de 2008 a las 14:46Gracias 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









Suscribirse a nuestro Twitter
Carlos (02-Aug-2010)
A trav茅s de la p谩gina en FaceBook de BalearesON, Dar铆o ha enlazado una aplicaci贸n de canal del tiempo para Surface. Muy interesante.