Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-12-2022
viverosjosem viverosjosem is offline
Baneado
 
Registrado: dic 2017
Posts: 64
Poder: 0
viverosjosem Va por buen camino
Angry Seleccion de datos extremadamente lenta... muero esperando..

LLevo muchos anos trabajando con delphi y Paradox. Y ahora me e visto en la necesidad de migrar a SQL. Mi experiencia con SQL, es mas bien pobre.

La situacion es la siguiente:
Tengo un cliente Chino, que tiene una fabrica de masas de hojas de wantan y arrollado primavera.

La tabla de facturas ya tiene casi 19.000 registros.
Los documentos de venta se graban en dos archivos separados: "Facturas" (contiene toda la informacion del docmento de venta: Rut, Numero, Fecha, monto, iva... etc. Cerca de 19.000 registros). Y "DetFact", detalle de facturas. (contiene: Rut, Numero, ademas del detalle de la compra: Codigo, Descripcion, cantidad.., etc. Cerca de 22.000 registros).

Lo que intento hacer, es presentar en un reporte la informacion de los clientes, sus datos de compra, lo adeudado, y los productos adquiridos.


Ejemplo:

Cliente................Factura.......Estado...............Total..........Pagado..........Saldo...... ....Descrip..........................Cantidad
Gin Sam Wan.........12341.....Pendiente........120.000.........80.000........40.000..........Masa Wantan mediano............400



Estoy usando una base de datos SQL Firebird 2.5, con delphi 2010.

Uso el siguiente codigo para hacer la consulta:

Código SQL [-]
         SQLDataSet1.Close;
         SQLDataSet1.CommandType := ctQuery;

         SQL_Text := 'SELECT  ' + 
                              'Facturas.TipoDoc, Facturas.Rut, Facturas.Numero, ' +
                              'Facturas.Estado, '     +
                              'Facturas.FechaEmi, Facturas.FecPago, ' +
                              'Facturas.Total, Facturas.Pagado, Facturas.Saldo, '  +
                              'DetFact.Codigo, DetFact.Descrip, DetFact.Cantidad '  +
                              'Clientes.Nombre, ' +
                      'FROM Facturas '                                 +
                      'LEFT JOIN Clientes '                            +
                      'ON Clientes.Codigo=Facturas.Rut ' +
                      'LEFT JOIN DetFact '                            +
                      'ON DetFact.Rut=Facturas.Rut AND DetFact.Numero=Facturas.Numero  ' +
                      'WHERE ' +
                                 'Facturas.Estado<>' + QuotedStr('A') + ' ' +
                      'ORDER BY Facturas.FechaEmi ' + ';';

   SQLDataSet1.CommandText := SQL_Text;

   SQLDataSet1.Open;
   if ( not SQLDataSet1.Eof ) then begin
     ...
     ...
     Lineas de codigo para el reporte..
     ...


El problema es, que esta consulta se demora mas de 10 minutos en arrojar resultados.

Existe alguna manera de hacer esto distinto?, para que la consulta sea mas rapida, sino automatica?.

Saludos.

Gracias de antemano.

Jose Miguel B.
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
Consultas extremadamente lentas en Delphi y rapidicimas en PL/SQL(ORACLE) pnsd_89 Conexión con bases de datos 13 01-07-2011 09:55:07
La pelicula que estabas esperando! mamcx Humor 2 08-06-2010 16:55:05
Ayuda con consulta lenta, lenta, lenta Gregory Mazon Firebird e Interbase 22 27-06-2007 09:56:38
Ejecutar un programa esperando o no a que termine dec Trucos 0 30-06-2006 14:05:39


La franja horaria es GMT +2. Ahora son las 06:23:08.


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