Para afarias (pesquisa lenta)

Firebird

08/07/2003

O cod e o seguinte
dmc.PACIENTES.Active:= false;
dmc.PACIENTES.SQL.Clear;
dmc.PACIENTES.SQL.Add(´Select PACD, PANM, PADN, PAIN, PAAM FROM pacientes´);
dmc.PACIENTES.SQL.Add(´Where ´ + Ordem + ´ like ´ + QuotedStr (lz.Text + ´¬´));
dmc.PACIENTES.SQL.Add(´order by ´ + ordem);
dmc.PACIENTES.Active:= true;
os campos com indices são o PANM -nome - PACD - cod


Sremulador

Sremulador

Curtidas 0

Respostas

Afarias

Afarias

08/07/2003

|os campos com indices são o PANM -nome - PACD - cod

vc tem 1 índice para PANM e 1 índice para PACD ?? (é o correto)

Se vc faz a pesquisa com qualquer um desses campos (com índice) na forma:

select ...campos... from tabela
where CAMPO_X like ´A¬´

a consulta deve ser rápida. E se for:

select ...campos... from tabela
where CAMPO_X like ´¬A¬´

então será lenta (pois o índice não será utilizado)

Outro possível problema é o Order By! q as vezes no IB e FB 1.0 pode deixar as consultas mais lentas.


vc pode ainda tentar usar STARTING WITH no lugar do LIKE :

select ...campos... from tabela
where CAMPO_X STARTING WITH ´A´


Abraço


GOSTEI 0
POSTAR