Todas opiniões muito boas, e os "E se" do Dickson mostram que tem várias
questões que podem levar pra cada um dos pontos...

Eu estou otimizando algumas consultas aqui de outros sistemas já prontos e
peguei uma que é um exemplo do que pode acontecer quando se opta por uma
consulta com todos os resultados...

É mais ou menos isso:

select
  (select count(*) from A,B,C where A.x=B.y and C.z=B.w and .. and ... and
...) as total,
  x,
  y,
  z,
  w
from A,B,C
where A.x=B.y and C.z=B.w and .. and ... and ...
limit 2

Só para retornar o número que seria total de registros sem o LIMIT, acaba-se
fazendo uma subquery exatamente igual a quey, mas retornando o count(*) sem
limit...

Então no começo de cada linha tem o numero N total de linhas da consulta


Deu pra entender o drama? hauehueaeh


2009/5/25 Dickson S. Guedes <lis...@guedesoft.net>

> Em Seg, 2009-05-25 às 11:47 -0300, Wagner Bonfiglio escreveu:
> (...)
> > Ele disse que prefere fazer uma consulta mais pesada mas que retorne o
> > máximo de dados possíveis de uma só vez, para que o tratamento seja
> > feito dentro do código e assim evitar o excesso de conexões ao
> > banco...
> (...)
> > Vocês tem alguma opinião formada sobre isso? Ou melhor, existe alguma
> > verdade absoluta sobre melhor prática nesse sentido?
>
> E se 100 usuários simultâneos dispararem o mesmo evento no sistema que
> execute esta consulta?
>
> E se dessa consulta apenas 20% dos registros forem realmente os
> necessários?
>
> E se leva mais tempo para o banco planejar, executar e devolver os
> resultados desta consulta do que de várias consultas menores somadas,
> ainda vale à pena?
>
> E se o problema é evitar muitas conexões/desconexões com o banco, porque
> não utilizar um aglomerador de conexões como pgbouncer ou pgpoolII?
>
>
> Wagner, sua colocação é bem pertinente, e realmente os vários "e se ..."
> acima são apenas algumas das questões que você tem que fazer para si e
> para os seus desenvolvedores.
>
> Vamos ver o que os demais colegas podem contribuir com suas
> experiências.
>
>
> Um abraço.
> Dickson S. Guedes
> mail/xmpp: gue...@guedesoft.net - skype: guediz
> http://guedesoft.net - http://www.postgresql.org.br
> http://www.rnp.br/keyserver/pks/lookup?search=0x8F3E3C06D428D10A
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a