Fórum Lentidão em conexão remota #251791
24/09/2004
0
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
Curtir tópico
+ 0Posts
24/09/2004
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+
Gostei + 0
24/09/2004
Vinicius2k
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+
Gostei + 0
24/09/2004
G1b4
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...
Gostei + 0
24/09/2004
Vinicius2k
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+
Gostei + 0
24/09/2004
G1b4
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+
Gostei + 0
24/09/2004
G1b4
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...
Gostei + 0
24/09/2004
Vinicius2k
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+
Gostei + 0
25/09/2004
G1b4
Vlw pela ajuda !!!
Gostei + 0
25/09/2004
Vinicius2k
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+
Gostei + 0
25/09/2004
G1b4
Gostei + 0
25/09/2004
Vinicius2k
É 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+
Gostei + 0
16/11/2004
Cabelo
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.
Gostei + 0
16/11/2004
Bruno_fantin
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....
Gostei + 0
16/11/2004
Cabelo
Gostei + 0
16/11/2004
Bruno_fantin
Gostei + 0