Realizei os mesmos testes em um banco Sybase ASE, e o comportamento é o
inverso, na consulta com subquery o índice não é utilizado e o tempo de
execução é elevado. Já com a função getdate( ) diretamente na comparação
do campo o índice é utilizado corretamente.

Esta função não existe mais faz tempo no PostgreSQL.
O colega da pergunta original (que se perdeu aqui no top post) por acaso declarou essa função em pl/pgsql ?

Se sim, verifique se a criou como VOLATILE. Nesse caso, o índice é usado porque o SELECT confirma que o valor é IMMUTABLE ao executá-lo, por outro lado, sem o sub-select, como o valor é declarado volátil, é verificado a cada linha.

[]s
Flavio Gurgel
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a