Con el fin de optimizar nuestros programas y el tiempo de respuesta de nuestros procesos, vamos a publicar una series de tips y articulos relacionados con el SQL en sus distintas presentaciones, hoy comenzamos con algo sencillo enmarcado en el RPG como lenguaje anfitrion de SQL. Borramos los registros de un archivo que cumplen con una condición. En este ejemplo queremos eliminar los registros cuya fecha de proceso sea menor a una fecha enviada por parámetro al programa SQLRPG
Código SQLRPG
C *Entry PList
C Parm varfec 80 (variable numérica de 8 posiciones y cero decimales)
C*
C/Exec Sql
C+ DELETE FROM ARCHIVO
C+ WHERE FECPRO <= :VARFEC
C/end-Exec
Para archivos de más de 4000.000 de registros esta instrucción puede tardar hasta 10 minutos. Con un RPG que utiliza un Read y un IF dentro del lazo de lectura, el proceso tarda hasta 1 hora y 20 minutos. Para compilar este programa, debe colocarse *NONE en el parámetro que corresponde al control de compromiso COMMIT, si no hemos creado un Journal sobre el archivo. Crear un Journal sobre el archivo le da al sistema operativo la posibilidad de revertir en forma automática el borrado de los archivos en caso de que así se requiera. Si el programa no compila revisa si colocaste correctamente este parámetro.
Crear o no un Journal a los archivos queda a criterio a las normativas de la Gerencia de Sistemas.
A continuación el parámetro de compilación.
Crear objeto RPG ILE SQL (CRTSQLRPGI)
Teclee elecciones, pulse Intro.
Objeto . . . . . . . . . . . . . . . . . . . . PROGRAMA
Nombre Biblioteca . . . . . . . . . . . .LIBRERIA Nombre, *CURLIB
Archivo fuente . . . . . . . . . . . . . . QRPGLESRC Nombre, QRPGLESRC
Miembro fuente . . . . . . . . . . . . . .PROGRAMA Nombre, *OBJ
Control de compromiso . . . . . . . .*NONE *CHG, *ALL, *CS, *NONE...
Base de datos relacional . . . . . . . *LOCAL
Tipo de compilación . . . . . . . . . .*PGM *PGM, *SRVPGM, *MODULE
Salida del listado . . . . . . . . . . . . . *NONE *NONE, *PRINT
Texto descriptivo . . . . . . . . . . . . *SRCMBRTXT
En el próximo articulos continuaremos optimizando los tiempos de respuesta de de programación con SQL.
Si te pareció interesante, reenvialo a un amigo haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Autor: Ing. Liliana Suárez
No comments:
Post a Comment