Hola a todos:

Esta nota es sólo para exponer una curiosidad que me ha surgido al utilizar 
SQL. Os explico.

He construido una sentencia SELECT no muy complicada que toma datos de cuatro 
ficheros, dos de ellos con 15 millones y casi 100 millones de registros. Mi 
método de trabajo consiste en probar primero los resultados desde una sesión 
interactiva de SQL (STRSQL). Después de intentar optimizar en varias ocasiones 
la sentencia, desde STRSQL no he conseguido que termine la ejecución (en todas 
las ocasiones esperé más de una hora, hasta que cancelé el proceso).

Esta situación me desesperó un poco. En equipos anteriores la ejecución de 
trabajos por lotes ha ido siempre más rápida (hablamos de programas no 
interactivos). Cogí la misma sentencia SELECT y la ejecuté con el mandato 
RUNSQLSTM en batch. ¡Oh, que sorpresa! La ejecución terminó en no más de un 
minuto. Como la sentencia SQL la tuve que cambiar para dejar los resultados en 
un fichero pensé que podría tener algo que ver. Luego intenté ejecutar 
RUNSQLSTM en interactivo y, ¡qué casualidad!, el resultado fue el mismo (o 
casi): entre un minuto y dos en ejecutarse.

Hice una prueba más, para disipar alguna duda. Utilicé la misma sentencia 
SELECT en QM y los resultados fueron similares.

Finalmente, incluí el SQL en el programa RPG desde donde debía trabajar con las 
filas devueltas y su ejecución no fue más allá de los dos minutos.

¿Es esto sólo una curiosidad? ¿Alguien tiene o se le ocurre una explicación? 
Desde mi punto de vista, una sentencia SQL debería ejecutarse a través de los 
mismos recursos desde STRSQL o cualquier otra utilidad. ¿Estoy equivocado?

Un saludo

Javier Mora

__________________________________________________
Forum.HELP400 es un servicio más de NEWS/400.
© Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400

Responder a