GARANTIR DESCONTO

Fórum Lentidão em conexão remota #251791

24/09/2004

0

Uso FB 1.5 com dbexpress & cia. Tenho uma aplicação que faz acesso remoto a uma cidade a 200km de distancia. Realizo a consulta por registro (um por vez) e mesmo assim, há uma demora de cerca de 7 segundos.

Conforme um artigo de performance do FB do colega Vinicius2K, realizei alguns passos que ainda não tinha concluido e isso me ajudou muito. Na verdade, consegui diminuir essse tempo em 8 segundos, muito bom se comparado a antes que havia uma demora de 15 segundos.

Quando existe uma relação Mestre/Detalhe aí a coisa complica. Leva cerca de 15 segundos.

Já estou usando o Zebedee configurado e a consulta que faço é simplesmente assim:

SELECT CAMPO1,CAMPO2,CAMPO3 FROM TABELA WHERE CAMPO1 = 1 


Alguém pode me ajudar????

Grato !!!! :lol:


G1b4

G1b4

Responder

Posts

24/09/2004

Vinicius2k

Conforme um artigo de performance do FB do colega Vinicius2K...

Meu não... todos os méritos aos autores... eu só os ´encontrei´ e publiquei para vcs... :D

Sua conexão é banda larga? eu tenho um módulo remoto para vendedores numa aplicação minha e eles acessam via linha discada (56K) direto no servidor de RAS do cliente e não chega nem perto do problema q vc está tendo...

Nestes casos, de preferencia à Master/Details ´manuais´... passando o(s) campo(s) chave(s) da Master como parametros da instrução SQL da Detail.

Está usando ClientDataSets ? Não faz muito sentido se vc realmente só está trazendo um registro por vez, mas verifique a propriedade [b:8207aa32a3]PacketRecords[/b:8207aa32a3]. Ela define a quantidade de registros que serão trazidos para o lado do cliente (por vez). Utilize valores baixos (eu uso 32).

Este Zebedee é para criação de túnel seguro não é ? Seu problema pode estar com ele... Não tenho experiencia com este tipo de software, mas se ele faz algum tipo de tratamento, como crypt/decrypt, em tudo q entra e sai do servidor, com certeza ele torna a operação mais lenta... O quanto mais lenta eu não poderia precisar, mas se o servidor não for bom (hardware e O.S) deve tornar beeeeem mais lenta...

Creio que este problema não seja de tão fácil solução, então não posso indicar uma de imediato... o máximo que podemos fazer é trocar idéias para que vc chegue numa condição melhor...
Se vc descrever melhor toda a situação que envolve este acesso, poderá ajudar-nos a ajudar vc de uma forma mais precisa...

T+


Responder

Gostei + 0

24/09/2004

Vinicius2k

Outro detalhe :
Propriedade [b:828060f2fb]KeepConnection[/b:828060f2fb] da TSQLConnection...
Sete como [b:828060f2fb]True[/b:828060f2fb], senão vc terá um processo de conexão e desconexão do lado do cliente a cada solicitação de registros ao servidor feita pelo DataSet.

T+


Responder

Gostei + 0

24/09/2004

G1b4

Hhehehe foi mal sobre o artigo agora que vi... :lol:

Bom vamos ao assunto:

:arrow: Sua conexão é banda larga?
Qto a conexao, utilizamos o Speed Business da Telefonica.

:arrow: Nestes casos, de preferencia à Master/Details ´manuais´... passando o(s) campo(s) chave(s) da Master como parametros da instrução SQL da Detail.
Faço isso sim...

:arrow: Está usando ClientDataSets ?
Sim... e configuro os Packets com 30

:arrow: Este Zebedee é para criação de túnel seguro não é ?
Utilizo ele sem criptografia, apenas configuro o tunel

:arrow: Propriedade KeepConnection da TSQLConnection...
Sim


:?: Tenho que achar alguma maneira de consultar um registro de forma mais rápida. O que acho istranhu é como o Report Manager e o IbExpert acionam mais registros de forma quase instantanea. E olha que jah refiz varias vezes esse codigo...






Responder

Gostei + 0

24/09/2004

Vinicius2k

... o Report Manager e o IbExpert acionam mais registros de forma quase instantanea. E olha que jah refiz varias vezes esse codigo...

Uma informação nova. Com isso vc pode esquecer qualquer problema com a conexão em si... o problema é na aplicação...

Vc está usando o driver nativo (dbexpint.dll) ?

Já fez algum teste com a mesma instrução SQL, porém usando IBX ou outra camada com acesso nativo à API ?
Apesar de estar trabalhando com dbExpress agora, esta minha aplicação que possui acesso remoto eu utilizo IBX...

T+


Responder

Gostei + 0

24/09/2004

G1b4

:arrow: Vc está usando o driver nativo (dbexpint.dll) ?
Sim, uso a versão 7.0.2.113. Mas já tem a versão 7.1.e alguma coisa

:arrow: Já fez algum teste com a mesma instrução SQL, porém usando IBX ou outra camada com acesso nativo à API ?
Será ??? Bom, vow testar... Mas o que acho estranho é que o Report Manager utiliza o dbx para fazer a conexao. Eu trabalho tudo sobre o clientdataset... só utilizo a sqlquery para fazer acesso no banco...

Vlws vinicius2k, vow continuar tentando aki.... Assim q tiver resultados, posto aki novamente.... T+


Responder

Gostei + 0

24/09/2004

G1b4

Vinicius2k, cara, fiz com o IBX e nao acredito:
fiz um SELECT * FROM TABELA no IBQUERY para abrir todos os registros (30000) e abriu em 5 segundos. Abrir 1 registro apenas é instantaneo.

Cara, isso quebrou minhas pernas mesmo. E o dbexpress??? O q acontece??? Fiz tudo direitinho como manda o figurino, dias e dias me matando, aprender a configurar o zebedee que não é tarefa fácil(fiquei uma cara) só pra fazer o dbx ter performance e mesmo assim...


Responder

Gostei + 0

24/09/2004

Vinicius2k

Também não é pra tanto... :shock:

O dbExpress é mais lento que o IBX, ou qualquer outra camada com acesso direto à API do IB/FB, isso é fato, mas também não é assim...

Apesar de vc ter solicitado todos os 30 mil registros ao servidor, a IBQuery, inteligentemente, não os trouxe... :D
A não ser que vc oriente-a de forma contrária, aplicando o método FectchAll, ela nunca vai trazer todos os registros, mesmo que vc tenha pedido...

[b:cb2240711d]Sugestão:[/b:cb2240711d] substitua, a princípio uma, [b:cb2240711d]SQLQuery[/b:cb2240711d], por um [b:cb2240711d]SQLDataSet[/b:cb2240711d]... já vi colegas reclamando disso... nunca aconteceu comigo, pq só uso [b:cb2240711d]SQLDataSet[/b:cb2240711d]

T+


Responder

Gostei + 0

25/09/2004

G1b4

Consegui depois de muitas tentativas continuar com o SQLQuery e baixei o tempo pra 3 segundos, o que por ser internet está bom d+ da conta...

Vlw pela ajuda !!!


Responder

Gostei + 0

25/09/2004

Vinicius2k

Blz. Mas ainda acho q vale a pena o teste com o SQLDataSet... não foram 1 nem 2... já vi vários colegas reclamando de problemas de lentidão na SQLQuery...

Minha opinião: Não está bom não... 3 Segundos pra trazer 1 único registro é muito tempo, mesmo sendo na net, até pq é banda larga...

T+


Responder

Gostei + 0

25/09/2004

G1b4

ok... vow testar.... disse que tava bom pois pra quem tinha um tempo de 15 segundos, melhorou muito... mas vow testar sim... vlw pela ajuda mesmo... brigadão...


Responder

Gostei + 0

25/09/2004

Vinicius2k

Eu entendi o q vc quiz dizer... :D
É que mesmo vc tendo reduzido em 5 vezes, ainda está alto para um único registro...
Mas vc deve fazer comparações também entre o tempo da operação remota e na rede local... a culpa pode não ser apenas da conexão remota... seu banco pode estar precisando de índices melhores também...
Faça o teste e poste os resultados. :wink:

T+


Responder

Gostei + 0

16/11/2004

Cabelo

Colega..

Eu utilizo uma TQuery no Delphi 5, se eu trocar pelos componentes da paleta InterBase, e fazer o acesso via internet, eu ganho performance??

Agradeço antecipadamente.


Responder

Gostei + 0

16/11/2004

Bruno_fantin

Algumas verdades sobre o DBExpress...

A Borland não ia colocar o nome Express atoa na tecnologia...

De todas as tecnologias de acesso a dados disponivel para o Delphi ela é sim a mais rapida...

Ela é mais rapida acessando interbase do que o ibx...

Ela é mais rapida acessando sql server do que o ado...

Isso se dar pelo fato de a mesmo ser unidirecional...

Mas esse fato de ser unidirecional traz um lado negativo... Ele precisa jogar todos os dados capturados para o cliente.... O que resulta numa perfoma lenta via internet...

Mas levando em conta que a Borland lançou essa tecnologia pensando no MIDAS e nos Web Service... Ai sim você ver a grande força do DBExpress...

Já fiz uma aplicação usando SQL Server + DBX + Midas... E te digo... É o bicho... Se a conexão for boa nas duas pontas... Até parece que você está em rede local...

Falou....


Responder

Gostei + 0

16/11/2004

Cabelo

Você poderia me dar um exemplo do quê vc me falou utilizando o delphi versão 5?


Responder

Gostei + 0

16/11/2004

Bruno_fantin

Exemplo do que??? MIDAS???


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar