Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Bases de datos > Firebird e Interbase
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 15/10/2014
anubis's Avatar
anubis anubis is offline
Miembro
 
Join Date: Mar 2007
Posts: 863
Poder: 20
anubis Va por buen camino
lentitud al ordenar tabla

Buenas amigos,

Vereis, tengo 2 querys, en uno tengo productos con su nombre y en el otro tengo ventas de productos pero almaceno solo el id del producto.

cuando hago la consulta, relaciono el id del producto de ventas con el id del producto de productos y me saca el nombre.

Eso es normal y sin problemas, me saca los datos rapido, son 60 registros.

Si le añado un sortfields o indexfieldnames por nombre de producto para que los saque ordenados en ventas, ahi me tarda, no mucho claro, pero para 60 registros creo que es bastante ( que hara con 500 registros?).

Si hago lo mismo con flamerobin tambien tarda, y si, tengo indexados las tablas por nombre de producto y por id de producto.

Estoy usando lazarus y componentes zeos.
Reply With Quote
  #2  
Old 15/10/2014
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
No entiendo, ¿haces un select ordenador por un campo y es lento?, ejemplo:
Código SQL [-]
select codigo, nombre from cliente order by codigo
Reply With Quote
  #3  
Old 15/10/2014
anubis's Avatar
anubis anubis is offline
Miembro
 
Join Date: Mar 2007
Posts: 863
Poder: 20
anubis Va por buen camino
No no,

Tengo esto:

Código Delphi [-]
fmodulo.zqcortesventas.SQL.Clear;
fmodulo.zqcortesventas.SQL.Text:='select a.* from cortesventas a where  a.id_corte =:corte';
fmodulo.zqcortesventas.ParamByName('corte').asinteger:=corte;
fmodulo.zqcortesventas.active:=true;

Código Delphi [-]
Campo                 := Tstringfield.Create(fmodulo.zqcortesventas);
   Campo.FieldName       := 'nombrepro';
    campo.size               :=100;
   campo.FieldKind       :=fklookup;
   campo.keyfields        :='id_producto';
   campo.lookupdataset   :=fmodulo.zqproductos;
   campo.lookupkeyfields :='id_producto';
   campo.lookupresultfield:='nombreproducto';
   Campo.DataSet         := fmodulo.zqcortesventas;

No tardada nada sino lo ordeno, si lo ordeno si, tiene que hacer el select de arriba, acceder a la tabla de productos y sacar el nombre.

Ya lo arregle de otra forma y parece que si es rapido y funciona. Lo que tiene no pensar .

Código Delphi [-]
fmodulo.zqcortesventas.SQL.Clear;
fmodulo.zqcortesventas.SQL.Text:='select a.*,b.id_producto,b.nombreproducto as nombrepro from cortesventas a, productos b where a.id_producto=b.id_producto and a.id_corte =:corte';
fmodulo.zqcortesventas.ParamByName('corte').asinteger:=corte;
fmodulo.zqcortesventas.active:=true;

En la creacion del campo solo cree el campo nombrepro y ya trabaja rapido, en vez de usar un fklookup.

Last edited by anubis : 15/10/2014 at 20:09.
Reply With Quote
  #4  
Old 15/10/2014
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
No recuerdo haber usado esa manera de obtener datos.
¿Por qué no haces un select normal y corriente?
Código Delphi [-]
select a.codigo 
from ventas a
inner join clientes c on c.codigo=a.cliente
where a.codigo = ?
Reply With Quote
  #5  
Old 15/10/2014
anubis's Avatar
anubis anubis is offline
Miembro
 
Join Date: Mar 2007
Posts: 863
Poder: 20
anubis Va por buen camino
Correcto casimiro, tambien sirve y creo que mejor.
Código SQL [-]
select a.*,b.ID_PRODUCTO,b.NOMBREPRODUCTO as nombrepro from cortesventas a inner join PRODUCTOS b on a.ID_PRODUCTO=b.ID_PRODUCTO where a.ID_CORTE=36
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
lentitud al adherir datos de otra tabla paradox yamahl Conexión con bases de datos 0 20/04/2009 23:58
Ordenar Una tabla por un Campo de otras Tabla teletranx Conexión con bases de datos 2 18/08/2006 15:56
Tabla Grande = Lentitud, Porque??? ELINK Firebird e Interbase 8 08/04/2005 15:46
ordenar tabla davidgaldo Conexión con bases de datos 7 25/02/2004 13:03
Ordenar tabla jfloro SQL 1 08/09/2003 13:39


All times are GMT +2. The time now is 23:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi