Cuestión : Cambios del funcionamiento en un programa DB2

Hola todos,

We han estado utilizando un programa del archivo donde habíamos identificado una lista de tablas que necesitaron archivar. El más viejo acercamiento era: el

1) tenía un programa de COBOL que suprimió de los cuadros un
2) que las tablas con pocos expedientes fueron suprimidas usar una sola cancelación. E.g. CANCELACIÓN DE TABLE_FIRST DONDE FECHA < DATE
3) para las tablas con el número de expedientes significativo nosotros tenía un cursor que trajo expedientes. Para cada expediente que traído funcionábamos una cancelación query.
4) cuando el ALCANCE para el cursor fue funcionado con, nosotros trajo 5000 filas a la vez e.g. TRAEN CSR_CURSOR PARA 5000 FILAS. Los datos fueron almacenados en un arsenal con 5000 filas. Los expedientes fueron leídos en el arsenal uno a la vez y la cancelación fue realizada usar estos valores. Después de que se supriman las primeras 5000 filas, traemos el bloque siguiente de 5000 por este año de table.

This que tenemos un requisito en el cual nos han pedido quitar la codificación dura específica de la tabla del programa. Debemos crear un archivo de lista que contenga una lista de tabla que se suprimirá y los criterios que se utilizarán para la canceladura. Esto requirió un reacondicionamiento a nuestro programa. Éste es el acercamiento que tenemos para ahora: el

1) realizamos la cancelación en las tablas paralelamente. Un programa del CL se funciona con para leer en el archivo de lista y para cada tabla enumeró un programa de la cancelación es submitted.
2) que el programa de la cancelación es un programa dinámico de DB2 COBOL en el cual primero encontramos que hacia fuera la llave primaria para un table.
3) una pregunta SELECTA ESTÁ PREPARADA usar los campos en el key.
4) utilizamos SQLDA para cargar la dirección del almacenaje para el diverso sistema de las llaves primarias que pueden occur.
5) para cada expediente se traiga que (usar valores dominantes primarios del th), nosotros funcionan una declaración de la CANCELACIÓN. La declaración del ALCANCE es el ALCANCE CSR_CURSOR USAR DESCRIPTOR: SQLDA.

What que no puedo alcanzar usar la declaración del ALCANCE en el point# 5 es TRAER para 5000 FILAS. Es mi comprensión que conseguiré un mejor funcionamiento si TRAIGO en bloques de 5000 (esto es apenas un número al azar que elegimos) y la CANCELACIÓN del funcionamiento para cada uno de los 5000 expedientes traídos que funcionando un ALCANCE y un funcionamiento simples una CANCELACIÓN para cada expediente que sea vuelto por el ALCANCE. el
Please aconseja si estoy correcto en si se asume que el “ALCANCE en el bloque de 5000 y la CANCELACIÓN” será más rápido que “TRAER TODOS y a CANCELACIÓN”. Si sí, cómo cuál es el sintaxis a traer en bloques al usar el SQLDA descriptor.

Thanks para el

Regards
Ali.
de la ayuda por adelantado. class= del

Respuesta : Cambios del funcionamiento en un programa DB2

Pienso que esto pudo ser un littlle más fácil que usted realizó -- usted puede hacer una unión entre las dos tablas del temp y llamarla hecha:
-- Aquí está el contenido de su tabla final…
Seleccionar el país de Col1 Col2 Col3 Col4 Col5 Col6 Col7 DSTRecID
de DBO.PROC1_TBL
unión
seleccionar el país de Col1 Col2 Col3 Col4 Col5 Col6 Col7 DSTRecID
de DBO.PROC2_TBL

-- Usted puede insertarlo en su tabla final como:
Parte movible en dbo.final_table (país de Col1 Col2 Col3 Col4 Col5 Col6 Col7 DSTRecID)
Seleccionar el país de Col1 Col2 Col3 Col4 Col5 Col6 Col7 DSTRecID
de DBO.PROC1_TBL
unión
seleccionar el país de Col1 Col2 Col3 Col4 Col5 Col6 Col7 DSTRecID
de DBO.PROC2_TBL


Otras soluciones  
 
programming4us programming4us