Quem é mais rápido usar o FindKey ou Usar um Select -Query?

Delphi

13/01/2006

Quem é mais rápido e por que? Usando um findkey tenho um índice criado, mas sei que pela query posso direcionar a pesquisa filtrando pelo campo.

Desde já Agradeço pela atenção.


Luiscesarap

Luiscesarap

Curtidas 0

Respostas

Michael

Michael

13/01/2006

Olá!

Isso depende da tecnologia de acesso que vc está utilizando. Se for dbExpress, por exemplo, o método [b:8c0acc127c]FindKey [/b:8c0acc127c]vai pesquisar no [b:8c0acc127c]DataSet [/b:8c0acc127c]que já está em memória, e por isso será obviamente mais rápido do que uma nova consulta no servidor.

Se estiver trabalhando com um cursor dentro da tabela, diretamente no banco de dados, o SQL tende a ser mais rápido, pois ele tbm vai usar os índices criados para os campos da tabela.

[]´s


GOSTEI 0
Michael

Michael

13/01/2006

Complementando meu post anterior: há anos que não trabalho com [b:6796d5e4a2]IBExpress [/b:6796d5e4a2]ou [b:6796d5e4a2]BDE[/b:6796d5e4a2], então não posso dizer com certeza se [b:6796d5e4a2]FindKey [/b:6796d5e4a2]é mais rápido do que um SQL. Raríssimas foram as vezes que usei este método ou [b:6796d5e4a2]Locate[/b:6796d5e4a2], por exemplo. Talvez alguma otimização tenha sido feita. Algum expert em BDE ou tecnologias afins pode responder melhor do que eu. ;-)

De qualquer forma continuo acreditando que o SQL do servidor é a melhor saída.

[]´s


GOSTEI 0
Aasn

Aasn

13/01/2006

Caro woz,

a questão é simples, uma vez que os dados já estão na memória ou em um dataset já aberto, certamente o FindKey será mais rápido, agora se vc tiver que abrir a tabela/dataset, dependendo da quantidade de registros, o select seja a melhor opção.

[]´s
AASN


GOSTEI 0
POSTAR