Power Builder - lentitud al actualizar muchos registros

 
Vista:

lentitud al actualizar muchos registros

Publicado por amilcar (327 intervenciones) el 28/10/2003 14:46:14
hola a todos tengo dos consultas
1) tengo un proceso que pasa datos de un dw a otro (aprox son 700 registros), una vez fiñalizado hago el update de este ultimo, pero el proceso del update demora demasiado. Que es mejor ir haciendo el update por cada uno de los registros o actualizarlos todos juntos.

2) el mismo caso que el anterior pero ahora estoy migrando de una tabla de access(aprox 30000 registros). paso de un dw a otro, en este caso voy haciendo el update uno por uno. La tabla de destino tiene cerca de 50000 registros, el proceso comienza rapido pero a medida que avanza cada vez se hace mas lento.
Cuando uno hace update, el dw se limpia automaticamente o hay que hacerle ademas un reset o alguna otra cosa.

gracias a todos
un saludo desde argentina
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:lentitud al actualizar muchos registros

Publicado por Oscar (1178 intervenciones) el 30/10/2003 14:05:29
Sin responder directamente a tu pregunta del inciso uno; quizá convenga conocer cuál es tu objetivo de pasar datos de DW a otro. ¿Es para guardar en el DW destino un historial?, ¿para imprimir?. ¿para visualizar los datos de otra manera?. Te pregunto esto, porque existen métodos que hacen lo mismo, sin actualizar NADA. Por ejemplo, usando la función Sharedata:
Ejemplo:
CONNECT USING SQLCA;
dw_1.SetTransObject(SQLCA)
dw_1.Retrieve()
dw_1.ShareData(dw_2)

Cualquier cosa que hagas al dw_1 (por ejemplo, actualizar); ya no es necesario que lo hagas en el dw_2 (queda reflejado). Este último, puede tener otro aspecto o estilo.

Ahora, si usas el DW destino por ejemplo para imprimir, filtrar, ordenar, etc., puedes usar un DataStore, que se maneja como cualquier DW (generalmente se usa como un DW oculto). El DataStore se crea y destruye dinámicamente y puedes definirla como una variable global para usarla en cualquier ventana de tu aplicación.

Nota: En un post de arriba, Miguel Angel te comentó sobre sharedata relacionado con otra pregunta tuya; quizá valga la pena que consideres su uso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:lentitud al actualizar muchos registros

Publicado por amilcar (327 intervenciones) el 30/10/2003 20:41:13
el tema es el sgte. tengo una aplicacion hecha en visual basic con access, la estoy migrando a pb con interbase.tengo que pasar todo el historico de facturacion aprox 100000 registros
usando el pipeline migre toda la tabla que tenia en access a interbase
llamemosla "tabla1"
ahora bien, como en el nuevo diseño tengo varias modificaciones con respecto al archivo que tenia en access, uso un dw (dw_1) para hacer retrieve de " tabla1", y otro (dw_2 ) en el cual insertare cada registro del dw_1, modificado segun el nuevo diseño.
cuando intento actualizar dw_2 el sistema actualiza rapido, ya que tengo un contador de registro, pero despues de 2000 - 3000 registros se empieza a poner cada vez mas lento hasta que al final demora un monton por cada registro.
en este proceso hago update por cada registro insertado, tambien probe insertar todos y hacer update al final pero creo que el tiempo que demora es el mismo.

quizas deberia usar un store_procedure, bueno no quiero aburrir con este tema gracias de todas maneras
un saludo desde argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:lentitud al actualizar muchos registros

Publicado por Oscar (1178 intervenciones) el 31/10/2003 02:20:57
La lentitud que mencionas quizá se deba propiamente al motor de BD que estas manejando. No conozco Interbase y mal puedo asegurar. Más bien, desde PB, podrías "jugar un poco" con las propiedades de actualización del objeto DW (ya sabes, te vas al menú Rows/Update Properties). Luego de desactivar y cambiar algunas opciones, observá los resultados.

Además, debes observar que en este proceso tus tablas no estén usando índices. Los índices serán buenos para agilizar la recuperación de datos; pero empeoran el rendimiento cuando se trata de actualizaciones. Un punto más para tener en cuenta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

gracias oscar

Publicado por amilcar (327 intervenciones) el 31/10/2003 22:44:28
gracias por todos tus respuestas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar