Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-08-2007
jmartinez jmartinez is offline
Registrado
 
Registrado: jun 2007
Posts: 1
Poder: 0
jmartinez Va por buen camino
Optimizar Consulta - algoritmo

Muy Buenas,

Me llamo Jose y soy de León. Este es mi primer mensaje porque hasta el momento todas mis dudas las pude solucionar buceando por el foro, así que hola a todos!. Espero que haya acertado con el subforo correcto para postear.

Mi duda: Utilizo Delphi(6) + Zeos + Mysql. En estos momentos la BD en localhost. Me gustaría optimizar un proceso que considero que tarda demasiado. (1 min aproximadamente). A ver si logro explicarme de forma sencilla. Tengo el siguiente esquema:

1.- Ejecuto Consulta de Selección (devuelve 3.000 registros)
2.-Mientras no alcance el final del recorset, hacer
2.1.- Pequeños calculos con algunos campos del registro.
2.2.- Creación de Nueva Consulta de Insercción (Insert Into..... EXECSQL)
2.3.- Paso al siguiente registro.


Básicamente lo que hago es recorrer una tabla de clientes con datos, hacer cálculos dentro del bucle y con cada uno de ellos, para generar un recibo bancario, que creo dentro de dicho bucle. Como la consulta de seleccion inicial me trae más de 3.000 registros, tengo 3.000 iteraciones del bucle, y en cada una de ellas se hace un Insert Into, y un md.zqQuery.ExecSQL para insertarlo. Este proceso es el que me tarda alrededor de un minuto. (sin grabar los recibos en BD, el proceso completo tarda 1.6 segundos).

Tendría alguna forma de mejorar ésto?. Se me ocurría al menos meter una barra de progreso, pero ese "progreso" no comienza hasta que el proceso completo del bucle termina, es como si ignorara la instruccion de avance de la barra de progreso. Supongo que será algo del procesador y que habría q meter threads (algo que tengo bastante olvidado).

También he pensado grabar los datos a un archivo de texto, y posteriormente hacer un único Insert Into con todos los "Values", pero tampoco lo veo claro.


A ver me he explicado bien y alguien puede guiarme un poco.

Gracias por adelantado.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Optimizar con Case XXX of TIKIMORE Varios 9 10-07-2010 17:21:20
Optimizar Consulta en Firebird AGAG4 Firebird e Interbase 14 10-01-2006 02:11:30
Optimizar Consulta dunia_lv MS SQL Server 2 21-04-2005 09:43:51
Optimizar Vistas repo Firebird e Interbase 1 02-03-2005 18:13:43
Optimizar Paradox en red Sick boy Conexión con bases de datos 0 26-02-2005 13:31:48


La franja horaria es GMT +2. Ahora son las 21:38:50.


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
Copyright 1996-2007 Club Delphi