AJUDA PESQUISA SQL/DBGRID

HUBER.FABIO 12/11/2013 14:47:20
#431043
Olá amigos !

Estou com problema para consulta de produtos em um determinado cliente (50 mil produtos cadastrados), uso uma função em sql e mostro em um dbgrid. Está muito lento, a cada letra que digito demora para atualizar. Gostaria de saber como posso deixar mais dinamica, alterando função, forma de fazer, grid, etc.

ExpSql = [Ô]Select Produtos.[Produto Longo] & Space(7) & Produtos.[Nome Marca], Produtos.[Código de Barras], Produtos.[Preço de Venda], Produtos.[Preço a Prazo], Produtos.[Estoque Atual], Produtos.[Código do Produto] from Produtos where Comercializado = False AND [Ô]
ExpSql = ExpSql & [Ô][Produto Longo] Like [ô]*[Ô] & TxtPesquisa.Text & [Ô]*[ô][Ô]
TProdutos.RecordSource = ExpSql
TProdutos.Refresh
FILMAN 12/11/2013 20:27:36
#431067
Pra ficar mais rápido é uma coisa meio complicada, pois são muitos registros, porém você pode estar criando índices na tabela para que fique mais rápido.

Exemplo sua busca esta sendo pelo nome do campo [Produto Longo] crie um índice para essa coluna que talvez resolva um pouco
outra forma é estipular mais filtro para chegar em uma buscar mais rapida


Espero ter ajudado
HUBER.FABIO 13/11/2013 08:02:00
#431086
Olá amigo !

Já possuo índice na tabela e ainda sim está bem lenta, ao ponto de dar uma congelada na tela. Grato pela ajuda.
LUCASVA 13/11/2013 08:41:46
#431089
huber, vc quer melhorar mais ainda?


pensa em criar uma view;

[ô]--------------------------------------
Select Produtos.[Produto Longo] & Space(7) & Produtos.[Nome Marca], Produtos.[Código de Barras], Produtos.[Preço de Venda], Produtos.[Preço a Prazo], Produtos.[Estoque Atual], Produtos.[Código do Produto] from Produtos where Comercializado = False

[ô]-------------------------------
e depois tu coloca os parametros da consulta que tu quiser;

ah eu ja passei por isto tb e a melhora é visivel
OMAR2011 13/11/2013 09:06:31
#431090
Usandoooooooooooooooooo o que.
50 mil, pouco.
Não deixe o pessoal imaginar.
KERPLUNK 13/11/2013 10:57:49
#431092
Talvez usando a cláusula TOP, para trazer apenas os primeiros X registros:
ExpSql = [Ô]Select TOP 100 Produtos.[Produto Longo] & Space(7) & Produtos.[Nome Marca], Produtos
HUBER.FABIO 13/11/2013 11:01:59
#431093
Amigos fazendo alguns testes verifiquei que a demora significativa sempre é na primeira consulta, após a primeira as demais são mais rápidas. estou louco ?? rsrs ... pelo o banco estar na rede pode ser que o acess aloca localmente alguma coisa que a deixa mais rápida após a primeira execução ?? também notei que com o banco localmente não tenho essa demora significativa, ok o banco está na rede mais a placa é /1000.
Tópico encerrado , respostas não são mais permitidas