Hola Javier,
¿Has probado de poner la sentencia SQL dentro del RPG como SQL
dinámico?, creo que eso hará que funcione más o menos igual de lento.
Me explico, creo que en todos los casos excepto en el STRSQL, ya existe
una "precompilación" de la sentencia SQL, con lo que la ejecución es mas
rápida, aunque es extrañamente mucho mas rápida, así que con la SQL
dinámica no tendrá esa precompilación y tendrá que generar la vía de acceso.
Saludos,
Dani
--
iSencia S.L.
Daniel García
E-mail: [EMAIL PROTECTED]
Tel. +34 93 754 03 66
Fax +34 93 754 03 98
Javier Mora wrote:
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
__________________________________________________
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