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