select muito lento

Delphi

17/07/2003

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


Helder Andr

Helder Andr

Curtidas 0

Respostas

Tenil

Tenil

17/07/2003

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


GOSTEI 0
POSTAR