DUVIDA SIMPLES PARA FERAS EM BD

MARCOS 22/11/2011 17:21:17
#389747
Boa tarde,Pessoal!
Sempre que precisei executar query no Banco de Dados, o fiz sem me preocupar
muito com o modo como o Banco [Ô]funciona internamente[Ô]. Bom, o problema é que
eu precisei montar uma consulta bem [Ô]Pesada[Ô]. Que lida com múltiplas tabelas,
que tem 400/ 500 mil linhas. Ao executar a consulta, depois de quase 1 hora
rodando, é exibida uma mensagem :

[Ô]Espaço em disco temporário insuficiente[Ô]

Obs:

- O Banco de Dados é o simples Access (2003)
- Tenho 1 GB de RAM
- Já tentei fechar os aplicativos e deixar somente o Access aberto. (Sem sucesso)

Minhas dúvidas:

1.) Vale a pena fazer um Upgrade para 2 GB de RAM. Ou isto não vai resolver?
2.) Existe alguma outra solução????







KERPLUNK 22/11/2011 17:30:15
#389750
Resposta escolhida
1 - Pode não resolver, o problema não é a memória ou o disco, mas o próprio Access, que não foi projetado para coisas muito pesadas
2 - Sim, migre para um banco de dados(isso mesmo, access é repositório, não banco de dados)
FILMAN 22/11/2011 17:31:59
#389751
Sim. Trocar de Banco de Dados

O Access é um ótimo banco de Dados para quem esta iniciando para aprender programar!

Agora para armazenar 400/500 mil linhas jamais utilize access. Lembrando que não sou contra o Access tenho
muito projetos desenvolvidos em Access tenta usar FireBird, MySQL, Até mesmo a Microsoft esta disponibilizando o SQL SERVER em versão gratuita como o SQL Server 2008 R2 32/64bits vale apena tentar.

E também como esta fazendo a consulta? pode ser que o seu código esteja um pouco sujo. Ja tentou dar uma melhorada?

Posta aí quem sabe não damos algumas dicas pra você
RICART 22/11/2011 18:06:43
#389759
O access suporta essa quantidade de registros sim, sem problema. O que pode estar ocorrendo é ele estar em uma partição com pouco espaço em disco rígido disponível.

Tente fazer essa operação em um micro com mais espaço em disco ou em uma partição com mais espaço.

Não utilizo mais o access em meus projetos, mas às vezes preciso fazer tratamento de dados em que não compensa modelar um banco de dados para isso, então faço tudo no access que é bem mais prático e já manipulei 5 milhões de registros sem problemas.
ALTAIR148 22/11/2011 18:30:19
#389763
Cara eu já tive problemas sérios com o access. No seu caso seria um desastre perder seus 400 mil registros, concorda? Sem falar que o access não é ideal para se trabalhar com várias estações, ele até funciona, mas o risco de corromper o banco é muito alto. Tudo bem que o access trabalha com muitos registros, o amigo Ricart disse que já trabalhou com 5 milhões, até ai tudo bem, mas o access sempre vai ter um desempenho inferior ao MYSQL, SQL Server, entre outros. Outra coisa muito importante que também vale lembra, é que não adianta ter um banco de ponta e utiliza-lo de forma incorreta. O meu conselho e creio que o de muita gente aqui do fórum vai ser, para trabalhar com outro banco, existem muitas ferramentas na internet para migração.
MARCOSLING 22/11/2011 21:16:03
#389770
Eu acho que o problema pode estar na sua query
PAULOOLIVEIRA 22/11/2011 21:44:18
#389775
on error goto mysql velho! vaza do access!
RICART 22/11/2011 22:16:54
#389779
Colegas, atualmente utilizo Firebird e Oracle. Não aconselho ninguém a utilizar banco access em seus projetos. A maior parte dos desenvolvedores que insistem em utilizar access é por que não tentaram outra opção por achar que são mais complicadas do que access.

Só que a questão principal do tópico é ajudar a resolver esse problema pontual do colega.
MARCOS 23/11/2011 09:30:45
#389810
Pessoal,a sugestão dos colegas de eu migrar para outro BD é sem dúvida a solução [Ô]Ideal[Ô].
Mas, no meu caso isto não pode ser feito de [Ô]Imediato[Ô]. Então, vou tentar executar a consulta
em uma máquina sem problemas de espaço em disco, e ver o que acontece.

Muito obrigado a todos!!!!!!
KERPLUNK 23/11/2011 10:25:59
#389820
Uma opção seria usar tabelas [Ô]auxiliares[Ô] para o que vc quer fazer...
KERPLUNK 23/11/2011 10:30:17
#389822
O que vc poderia fazer é mostrar as estruturas das tabelas envolvidas na sua query e explicar o que vc quer retornar. Assim, podemos todos aqui ajudar numa solução para seu problema...
Tópico encerrado , respostas não são mais permitidas