otimizar acesso e consultas ao IB
02/01/2006
0
Otimizei ao máximo as queries, não existe nenhum ´select * ´ , uso clientdataset.
O que acontece: Ao abrir uma tabela pela primeira vez, fica muuuito lento, chega a demorar 2 minutos. Mas, ao abrir novamente as mesmas tabelas, é bem rápido, não tem problema nenhum.
Como eu posso resolver isso?
Vitor Rubio
Posts
02/01/2006
Peninha
Erivan.
02/01/2006
Vitor Rubio
Eu uso select * somente quando vou cadastrar um novo registro, porque eu tenho que preencher todos os campos. aí eu faço tipo:
select * from CLIENTES
where CodCli = :cod
ponho esse :cod aí, porque se for qualquer coisa <> de 0, ele abre o cds pra cadastrar ocliente. Se for nada, ou um valor inexistente, ele não traza nada. (então eu acho que uma query q não traz nada seria rápida), e se for um número existente, aí tudo bem, ele traria tudo. Mas não traz porque nunca é passado um número nessa tela, pois ela é usada somente para cadastro, não para consulta. as de consulta são assim:
select codcli, razao, from clientes
where codcli = :cod
02/01/2006
Edilcimar
02/01/2006
Vitor Rubio
O bd é aberto no momento da abertura do executavel. só que, depois do bd aberto, a primeira consulta demora, a segunda já é mais rápida.
será que tem algo a ver com cache?
02/01/2006
Edilcimar
02/01/2006
Vitor Rubio
basta criar o indice que aí qualquer select que você fizer usando e ordenando pelo campo indexado fica mais rápido, certo? É só fazer um select normal mesmo, não é?
02/01/2006
Edilcimar
02/01/2006
Vitor Rubio
02/01/2006
Vitor Rubio
Alguns cadastros são gerais e outros são separados por lojas, mas todas acessam tudo.
02/01/2006
Edilcimar
02/01/2006
Vitor Rubio
O problema não é o link, porque como eu disse, só é lento na primeira consulta, as demais são rápidas, dependendo da consulta, posso até arriscar que parecem locais.
02/01/2006
Titanius
Também tive este problema, so consegui resolver usando 3 camadas com DCOM, aí consegui acessar via internet, fora isso é impossível mesmo...
[]s
02/01/2006
Edilcimar
02/01/2006
Vitor Rubio
É muito difícil? Por onde eu começo? Me disseram que dCom é problemático, e que com corba ou Sockets é melhor, mas sinceramente eu não conheço nehuma das várias formas.
De qualquer forma, um dia eu terei que fazer essa migração mesmo, mas por enquanto, meu problema é o seguinte: Só é lerdo na primeira consulta a uma tabela, todas as outras são rápidas. Se desse pra melhorar pelo menos isso até terça, depois agente pensa em 3 camadas.
Clique aqui para fazer login e interagir na Comunidade :)