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

Responder a