Proceso demasiado lento
Buenas, he creado una aplicación con c++ builder 6 que lee un archivo csv y lo carga en un Memo, despues revisa una base de datos en access 2007 para comprobar que los datos de este csv no esten en la base de datos y los va introduciendo, mi problema es que manejo demasiada cantidad de datos , actualmente son unos 9000 registros, con lo cual, al recorrer la base de datos con cada inserción me tarda demasiado, no se como agilizar este proceso y si alguno tiene alguna idea de como hacer que esto sea mas rapido me seria de gran ayuda, gracias de antemano :).
|
Tu explicación es muy genérica, deberías explicar ampliamente cómo lo haces, poner código, etc.
|
OK ahi va el codigo:
Código:
void __fastcall TXPrincipal::ToolButton2Click(TObject *Sender) Soy bastante novato y provablemen te esto se podria hacer de alguna forma mas sencilla, no lo se, pero lo que me tarda es abusivo, gracias por contestar tan rapido :) |
Para saber si un registro existe o no, deberías preguntarlo directamente a la base y no recorrer cada registro y comparar.
Esta parte Código:
//Recorro la tabla de productos con una Query para comprobar que el producto no este ya en la BD No conozco como hacerlo en C, pero sería algo así: Código:
// Ejecuto query que cuentas cuantos registros tienen referencia=[lo que busco] |
Muchas gracias
Probare a hacerlo de esa forma, usando consultas a ver si se agiliza el proceso y os comento.
Gracias de nuevo por la ayuda :) |
Creo que es un código perfecto para utilizar un profiler (aquí hay algunos). Con estos programas puedes saber exactamente qué parte de tu programa es la que está tardando más tiempo. Las lecturas, algún procedimiento con strings,...
Con eso podrás saber exactamente a qué parte tienes que atacar para optimizar. |
La franja horaria es GMT +2. Ahora son las 04:37:02. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi