Fórum Consulta SQL lenta #325969
24/07/2006
0
Ola amigos,
estou usando o MYSQL e DELPHI 7.0 ,
tenho uma consulta no meu sistema que a certo tempo rodava rapido, mas agora esta muito demorada, acho por ter cresido a quantidade de dados no db.... tem algum metodo de pesquisa SQL com select mais eficiente?
comando que utilizao:
query1.Close;
query1.SQL.Clear;
query1.SQL.Add(´select * from cad_fin_rcto´);
query1.SQL.Add(´where unid_cod=´´+unidcod+´´ and frcto_cod=´5´ and rcto_movdata>=´´+inicio+´´ and rcto_movdata<=´´+final+´´ and reg_excluir<>´*´´);
query1.Open;
estou usando o MYSQL e DELPHI 7.0 ,
tenho uma consulta no meu sistema que a certo tempo rodava rapido, mas agora esta muito demorada, acho por ter cresido a quantidade de dados no db.... tem algum metodo de pesquisa SQL com select mais eficiente?
comando que utilizao:
query1.Close;
query1.SQL.Clear;
query1.SQL.Add(´select * from cad_fin_rcto´);
query1.SQL.Add(´where unid_cod=´´+unidcod+´´ and frcto_cod=´5´ and rcto_movdata>=´´+inicio+´´ and rcto_movdata<=´´+final+´´ and reg_excluir<>´*´´);
query1.Open;
Fábio Galvão
Curtir tópico
+ 0
Responder
Posts
24/07/2006
Martins
tente modificar para:
campo1 = primeiro campo q vc quer q seja retornado na sua consulta, procure indicar quais campos vc vai utilizar, usando ´*´ somente se for extritamente necessário.
boa sorte!
query1.Close; query1.SQL.Clear; query1.SQL.Add(´select campo1, campo2, campo3,... from cad_fin_rcto´); query1.SQL.Add(´where unid_cod="´+unidcod+´" and frcto_cod="5" and rcto_movdata>="´+inicio+´" and rcto_movdata<="´+final+´" and reg_excluir<>"*"´); query1.Open;
campo1 = primeiro campo q vc quer q seja retornado na sua consulta, procure indicar quais campos vc vai utilizar, usando ´*´ somente se for extritamente necessário.
boa sorte!
Responder
Gostei + 0
24/07/2006
Minuto
bem nao vejo muito o q fazer mas...
vc usou * ...
pergunto: precisa realmente de todos os campos , senao retire os q vc nao precisa.
outra coisa nao sei se pode ajudar (ACHO Q NAO) MAS...
rcto_movdata coloque um: between inicio and fim
a ultima...
tente criar uma view pra ver se fica + rapido
create view ...
select campo1 , ...
from cad_fin_rcto where frcto_cod=´5´ and reg_excluir<>´*´ ;
assim c vai ter uma tabela mais reduzida para pesquisa
vc usou * ...
pergunto: precisa realmente de todos os campos , senao retire os q vc nao precisa.
outra coisa nao sei se pode ajudar (ACHO Q NAO) MAS...
rcto_movdata coloque um: between inicio and fim
a ultima...
tente criar uma view pra ver se fica + rapido
create view ...
select campo1 , ...
from cad_fin_rcto where frcto_cod=´5´ and reg_excluir<>´*´ ;
assim c vai ter uma tabela mais reduzida para pesquisa
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)