Em 4 de maio de 2016 23:10, Jean Alysson <[email protected]> escreveu: > Ola Tiago, está correta sua dedução > obrigado pela resposta ! > > Estou começando com PostgreSql, então gostaria de saber se dessa forma eu > teria boa performance ? > Esta solução com subselect poderia ser feita sem usar 2 selects ? over > partition, with query ou algo assim ? >
Olá Jean. Evite o top posting, prefira sempre escrever abaixo das mensagens anteriores. Isto facilita a leitura. Não é exclusividade do PostgreSQL, o desempenho vai depender de vários fatores como: número de registros, índices criados e número de campos (atributos) envolvidos na cláusula WHERE. É possível reescrever esta consulta de várias maneiras. É possível também utilizando window functions, mas acredito que o esforço será maior, o código SQL será maior e o desempenho será pior, haja vista que mais registros serão lidos do banco de dados e trazidos para a memória para realização de operações de ordenação, causando uso adicional de CPU. O que vai impactar mais no desempenho da consulta como descrevi são os índices sobre a tabela. Por exemplo: você pode criar índices compostos colocando os campos utilizados na consulta com maior incidência de valores distintos à frente dos campos que possuem menor distinção de valores ao longo da tabela. Certa vez alguém postou aqui na lista um endereço de blog ou site com dicas valiosas de como criar índices, se você pesquisar bem no histórico [1] vai encontrar. [1] https://www.postgresql.org.br/historico TIAGO J. ADAMI http://www.adamiworks.com @tiadami _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
