Em 24 de setembro de 2015 09:30, Flavio Henrique Araque Gurgel < fha...@gmail.com> escreveu:
> Bom dia Pessoal >> para apimentar um pouco mais, ja que fui eu quem iniciou a thread, >> abaixo segue as latências enviado pelo pessoal da representante da >> Amazon no Brasil. >> no nosso caso vai ficar complicado utilizar os datacenter fora do >> Brasil, devido nosso ERP (delphi) ser em duas camadas, com o aplicativo >> na maquina do cliente apontando o banco para o datacenter. Neste caso >> teríamos que utilizar Terminal Server. >> Atualmente nosso banco está no datacenter da UOLDIVEO e temos uma >> latência media de 40s e os clientes reclamam as vezes da lentidão. >> > > Aplicação cliente-servidor sofre muito com latência até o banco de dados, > normalmente são péssimas candidatas a ir pra nuvem. As diversas consultas > necessárias para montar uma tela, por exemplo, multiplica a latência. > Exemplo: > > Uma tela que precise de 5 consultas. Se a latência é de 40ms, isso dá > 200ms, sem contar o tempo de executar as consultas no servidor e mais o > processamento local com os dados retornados. Se considerarmos BEGIN et > COMMIT, junta mais 80ms. > > No exemplo acima, se a latência for de 200ms (usuário no Brasil e servidor > nos EUA), seu tempo só de latência sobe para 1,4 segundos! Uma eternidade. > > Sim, é inviável no seu caso. > > Se vocês gostariam mesmo de ir pra "nuvem", sugiro reescrever uma > aplicação web, onde o servidor de aplicação fica próximo do banco de dados. > Nesse caso, o cliente não sente ou sente muito pouco a latência, uma vez > que a quantidade de idas e vindas se reduz à requisição da página e o > retorno dela. As idas e vindas aplicação-banco de dados são sempre rápidas, > normalmente inferiores a 10ms. > > Taí, não precisa ser bidu pra calcular o efeito da latência usando dados > aproximados. > > Claro que sua solução de "terminal server" tem um efeito parecido de > redução de latência, como uma aplicação web. > > > No passado tive problema com a latência, mesmo utilizando uma aplicação web, o usuário reclamava de lentidão, pois fazia-se leitura de código de barras, e o usuário era mais rápido que a aplicação. Nesse processo de leitura, a aplicação fazia algumas validações, o problema era que cada validação representava uma requisição ao banco de dados, então multiplicando cada requisição pela latência, esse processo todo levava quase 2 segundos (que eternidade)... A solução foi tirar as validações da aplicação e colocar no banco de dados, pois assim a aplicação fazia apenas uma requisição, o banco de dados processava e retornava o que tinha que retornar, com isso, conseguimos reduzir para apenas alguns milissegundos o processo e deixar o cliente feliz :) Douglas, analise todo o processo e tente reduzir a quantidade de requisições que a aplicação faz ao banco de dados, com isso você conseguirá reduzir o tempo total do processo. []s Danilo
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral