TABELA ENORME E LENTA PARA MANIPULAR [TRATAMENTO]

WEBIER 18/05/2011 19:28:08
#374323
tenho uma tabela de mini-supermercado que tá muito lento para se trabalhar com ela.

tenho um pdv onde vou passando todos os produtos da venda... a medida que vou passando os produtos, ele vai adicionando na tabela PEDIDO_ITENS.

então cada produto que passo no leitor de cód de barra, ele registra nessa tabela... hoje essa tabela tá com 163.530 registros

então quando quero passar um produto no pdv ele demora muito para registrar na tabele e exibir no grid..

obs:
-Não uso chave primária nessa tabela

CAMPOS TIPO DE CAMPO

CODIGO long
COD_PEDIDO long
COD_PRODUTO long
DESCRIÇÃO text
PRECO currency
QUANT double
TOTAL currency

Uso banco de dados Access e DAO 3.60

o que devo fazer para agiliar o precesso de inserção e consulta dos dados?
SMZTODOPODEROSO 18/05/2011 19:31:30
#374324
usa a pesquisa em sql
WEBIER 18/05/2011 19:38:15
#374325
tanto a inserção como a pesquisa são em SQL

Na parte de código... tá bom, tanto que pedi que 4 pessoas avaliassem o projeto e não virão erros nos código que deixasse lento
LLAIA 18/05/2011 20:51:01
#374327
Resposta escolhida
vc tá inserindo na tabela um item do pedido e em seguida faz uma consulta pra carregar o grid com o novo produto lançado + os anteriores? se for isso, vai ter que cancelar essa consulta e lançar na grade outra forma.
WEBIER 18/05/2011 21:11:48
#374333
é justamente isso q faço

toda vez q adiciona ou removo um registro do pedido, ele refaz a consulta e preenche o grid

como devo fazer entao?
MARCIOHR 19/05/2011 10:18:54
#374374
Esse era um problema que tinha com access, mesmo se utilizasse o Select bonitinho e filtrando certinho ficava lento pra carregar, só havia uma saída, o cliente trocar o processador da máquina (Tipo Core2Duo ou superior).

Mas resolvi então apostar em outro banco de dados: PostgreSQL cuja conversão é fácil e não precisa alterar muito o código fonte, cara resolveu meu problema muito e agora com Celeron consigo fazer o sistema trabalhar rapido.

Segue ai uma sugestão.

Att
KERPLUNK 19/05/2011 10:39:32
#374376
Crie uma classe que represente o ítem do pedido e uma que representa o pedido. Na que representa o pedido, crie uma propriedade que será uma coleção de ítens. Ao invés de inserir na tabela toda a vez, insira na classe, e só depoi na finalização, insira na tabela.
MSMJUDAS 19/05/2011 11:47:35
#374384
Primeiro vc lança os itens no Grid, e na hora de gravar o pedido vc grava os itens do grid na sua tabela. Bem mais simples e fácil do que ficar lançando, gravando e consultando um por um.
LLAIA 19/05/2011 12:22:42
#374392
Ou então, coloque os itens em um arquivo texto a medida que lança e remove da grade. Muitos fazem isso em PDV de supermercado, pois como os itens vão passando e sendo empacotados, e se ocorrer uma falha no sistema, ao reiniciar o PDV é só fazer o reload pelo arquivo, e evita transtorno com o cliente que teria que desempacotar os itens.
Tópico encerrado , respostas não são mais permitidas