Consulta sql demorada
Boa tarde, eu tenho uma tabela com 100.00 registros e quando eu abro ela pelo delphi 7 usando um grid, a consulta é muito demorada.
Uso componente zeos e postgre.
Uso componente zeos e postgre.
Fernando Sousa
Curtidas 0
Melhor post
Bruno Leandro
25/04/2014
Fernando o que pode ser feito é não trazer nenhum registro.
a demora é porque o banco tem que retornar todos os registros e esses registro tem que trafegar na rede as vezes e é um volume grande de registros.
se você Não quiser mudar a lógica você tem teria que melhorar a parte de hardware (nao recomendo)
a minha sugestão é: abrir a tela sem retornar nenhum registro, e quando o usuário clicar em pesquisar retornar os registros necessarios.
a demora é porque o banco tem que retornar todos os registros e esses registro tem que trafegar na rede as vezes e é um volume grande de registros.
se você Não quiser mudar a lógica você tem teria que melhorar a parte de hardware (nao recomendo)
a minha sugestão é: abrir a tela sem retornar nenhum registro, e quando o usuário clicar em pesquisar retornar os registros necessarios.
GOSTEI 1
Mais Respostas
Bruno Leandro
24/04/2014
Ola Fernando você retorna todos os registros quando a tela é aberta ?
qual o select que você esta executando?
qual o select que você esta executando?
GOSTEI 0
Jair N.
24/04/2014
Você tem que fazer teste para melhorar sua conexão, veja um limitador de registros a exemplo o "LIMIT" do PostgreSQL para ver quantos registros você consegue abrir em sua grade em determinado tempo..., Uma solução agora não será definitiva e nem sempre pode contar com o mesmo cenário.
GOSTEI 0
Fernando Sousa
24/04/2014
Opa Bruno, sim. Eu carrego ela quando chamo a tela.
Eu uso um select normal.
with dm.ztabela do
begin
close;
sql.clear;
sql.add(select * from tabela);
open;
end;
Ai depois disto, mostro ela em um grid.
Eu uso um select normal.
with dm.ztabela do
begin
close;
sql.clear;
sql.add(select * from tabela);
open;
end;
Ai depois disto, mostro ela em um grid.
GOSTEI 0
Alan Mario
24/04/2014
trazer todos os dados da tabela é complicado, sempre será lento.
GOSTEI 0
Ronaldo Lanhellas
24/04/2014
Dica:
Use o comando EXPLAIN ANALYZE para estudar as falhas da sua query. Segue a sintaxe:
Use o comando EXPLAIN ANALYZE para estudar as falhas da sua query. Segue a sintaxe:
EXPLAIN ANALYZE select * from minhatabela;
GOSTEI 0
Fernando Sousa
24/04/2014
Limitei os campos a serem utilizados no grid e funciona perfeitamente.
RESOLVIDO.
RESOLVIDO.
GOSTEI 0