MELHORANDO CONSULTA SQL - ACCESS

MICHAELL 12/01/2012 12:03:48
#393048
Ola pessoal, tudo bem?
Tenho um sistema que utiliza ACCESS como banco de dados.

Porem, quando o banco de dados tem muitos registros (Cerca de 300mil registros) - 60mb de banco de dados
via rede ele fica extremamente lento nessa consulta abaixo

 
Set TBVendas = BancoDeDados.OpenRecordset([Ô]select top 20 Tele_Capa.data, Tele_capa.codigo_tele, Tele.codigo_produto, desc_longa, quantidade, valor_tele, apelido, motivo [Ô] & _
[Ô]from Tele, Funcionarios, Produtos, tele_Capa [Ô] & _
[Ô]where Tele_capa.codigo_cliente = [Ô] & txtCodCliente & [Ô] AND Funcionarios.codigo_Funcionario = Tele_Capa.codigo_Funcionario AND Tele.codigo_tele = tele_Capa.codigo_tele AND Produtos.codigo = Tele.codigo_produto order by Tele.codigo_tele desc [Ô])





alguem poderia me dizer se existe uma forma de melhorar essa consulta acima?
SAMUKA 12/01/2012 13:16:00
#393055
Resposta escolhida
Olá MAICONJG, blz?

Seu banco tá normalizado? Com os relacionamentos, chave primaria e secundária, campos numéricos definidos como numéricos, o banco de dados está ok?

Pergunto isso, pois tb tenho sistema rodando em Access, com arquivo com mais de 60Mb em rede e não tenho problemas de velocidade.

Sem contar que você está puxando só as 20 primeiras linhas ...

MARCELO.TREZE 12/01/2012 13:32:31
#393060
outra coisa coloque na consulta apenas os campos que serão exibidos.
MICHAELL 12/01/2012 13:54:28
#393066
Citação:

:
Olá MAICONJG, blz?

Seu banco tá normalizado? Com os relacionamentos, chave primaria e secundária, campos numéricos definidos como numéricos, o banco de dados está ok?

Pergunto isso, pois tb tenho sistema rodando em Access, com arquivo com mais de 60Mb em rede e não tenho problemas de velocidade.

Sem contar que você está puxando só as 20 primeiras linhas ...



realmente a tabela nao tem nenhum relacionamento entre um e outro.

apenas com chave primarias.... segundarias nao.

relacionamento e chaves segundarias ajudariam mesmo na velocidade do banco de dados pra trabalhar em rede?
MICHAELL 12/01/2012 14:04:42
#393067
Samuka.. eu acabei de relacionar essas 4 tabelas do banco de dados no qual eu estou consultando..
mas infelizmente nao melhorou nada na velocidade. Para essa consulta ai via rede wireless esta levando cerca de 15segundos para exibir, em um notebook com 8GB de memoria.

SAMUKA 12/01/2012 14:09:37
#393068
Citação:

:
Samuka.. eu acabei de relacionar essas 4 tabelas do banco de dados no qual eu estou consultando..
mas infelizmente nao melhorou nada na velocidade. Para essa consulta ai via rede wireless esta levando cerca de 15segundos para exibir, em um notebook com 8GB de memoria.



Pela madrugada .... tá demais. Isso não é normal

Qtos terminais tem pendurados nessa rede?? Qtos acessam o banco ao mesmo tempo??
SAMUKA 12/01/2012 14:11:39
#393069
Outra coisa, qto tempo demora essa consulta qdo vc executa no PC onde está o banco? (O problema pode ser a rede muito carregada)
MICHAELL 12/01/2012 14:20:59
#393071
samuka, estou testando em um pc + um note. Mas a empresa que usa esse banco de dados tem 6 maquinas.

no computador local é iinstantaneo... ja via rede uns 15 segundos...
LLAIA 12/01/2012 14:22:39
#393072
Wirelless e Access??? Já vi essa história antes e dependendo da antena da rede, vai ficar horrível mesmo. Se houver interferência no ambiente então ...
MICHAELL 12/01/2012 14:31:54
#393075
ok, LLAIA eu sei, é apenas um teste, no cliente é via CABO

o que importa é o seguinte:
- Se o banco de dados tiver poucos dados, é instantaneo...se tiver muitos ele demora muito

queria ajuda pra melhorar a consulta.

O marcelo deu ideia de colocar apenas os campos que vou usar, acredito que iisso ajudou, mas nao mudou muito nao

alguem sabe como posso melhorar mais ainda?
SAMUKA 12/01/2012 15:14:52
#393081
MAICONJG, sobre a consulta, não tem nada que possa ser melhorado em termos de velocidade, além do que o Marcelo falou.

Outra coisa que pode interferir na velocidade da consulta é a forma como vc configura o RecordSet do ADO (imagino que seja o que você está usando). As tres propriedades estão relacionadas com a forma como a consulta é realizada:

CursorLocation http://www.w3schools.com/ado/prop_rs_cursorlocation.asp
CursorType http://www.w3schools.com/ado/prop_rs_cursortype.asp
LockType http://www.w3schools.com/ado/prop_rs_locktype.asp

Sobre o objeto Recorset http://www.w3schools.com/ado/ado_ref_recordset.asp
Página 1 de 3 [24 registro(s)]
Tópico encerrado , respostas não são mais permitidas