MELHORANDO CONSULTA SQL - ACCESS
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
alguem poderia me dizer se existe uma forma de melhorar essa consulta acima?
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?
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 ...
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 ...
outra coisa coloque na consulta apenas os campos que serão exibidos.
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?
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.
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.
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??
Outra coisa, qto tempo demora essa consulta qdo vc executa no PC onde está o banco? (O problema pode ser a rede muito carregada)
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...
no computador local é iinstantaneo... ja via rede uns 15 segundos...
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 ...
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?
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?
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
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
Tópico encerrado , respostas não são mais permitidas