Fórum select muito lento #169965
17/07/2003
0
estou com problemas:
uso o ib 6.0 e delphi 6 e ibexpert
tenho uma tabela de:
orcamento com (1.500 registro)
cliente (500 registro)
convenio (200 registro)
paciente (10.000 registrto)
todas possuem chave primaria e integridade referencial (restrict)
quando dou um select ex:
select numorc,datorc,c.nomcli,n.nomcon,p.nompac
from orcamento o inner join cliente c
on (o.codfil||o.codcli=c.codfil||c.codcli) inner join convenio n
on (o.codfil||o.codcon=n.codfil||n.codcon) inner join paciente p
on (o.codfil||o.codpac=p.codfil||p.codpac)
where codfil=1 and codcli=1
order by codfil,codcli
demora muito mesmo (é mais lento do que o paradox)
o que eu faço ?
e se eu unir com itens orcamento fica pior ainda
uso o ib 6.0 e delphi 6 e ibexpert
tenho uma tabela de:
orcamento com (1.500 registro)
cliente (500 registro)
convenio (200 registro)
paciente (10.000 registrto)
todas possuem chave primaria e integridade referencial (restrict)
quando dou um select ex:
select numorc,datorc,c.nomcli,n.nomcon,p.nompac
from orcamento o inner join cliente c
on (o.codfil||o.codcli=c.codfil||c.codcli) inner join convenio n
on (o.codfil||o.codcon=n.codfil||n.codcon) inner join paciente p
on (o.codfil||o.codpac=p.codfil||p.codpac)
where codfil=1 and codcli=1
order by codfil,codcli
demora muito mesmo (é mais lento do que o paradox)
o que eu faço ?
e se eu unir com itens orcamento fica pior ainda
Helder Andr
Curtir tópico
+ 0
Responder
Posts
17/07/2003
Tenil
Kra, pra começar, vc pode incluir em todos os campos a tabela que ele pertence.
Se numorc for da tabela orcamento então fica o.numorc.
E assim por diante.
select o.numorc, o.datorc, c.nomcli, n.nomcon, p.nompac
from orcamento o inner join cliente c
on (o.codfil || o.codcli=c.codfil || c.codcli) inner join convenio n
on (o.codfil || o.codcon=n.codfil || n.codcon) inner join paciente p
on (o.codfil || o.codpac=p.codfil || p.codpac)
where (o.codfil=1) and (o.codcli=1)
order by o.codfil, o.codcli;
Esses || também são uma operação muito lenta, procure uma outra forma de fazer a mesma coisa.
Abraços
Roberto
Brasília-DF
Se numorc for da tabela orcamento então fica o.numorc.
E assim por diante.
select o.numorc, o.datorc, c.nomcli, n.nomcon, p.nompac
from orcamento o inner join cliente c
on (o.codfil || o.codcli=c.codfil || c.codcli) inner join convenio n
on (o.codfil || o.codcon=n.codfil || n.codcon) inner join paciente p
on (o.codfil || o.codpac=p.codfil || p.codpac)
where (o.codfil=1) and (o.codcli=1)
order by o.codfil, o.codcli;
Esses || também são uma operação muito lenta, procure uma outra forma de fazer a mesma coisa.
Abraços
Roberto
Brasília-DF
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)