Em 13 de março de 2015 15:03, Rafael Fialho <rafafial...@gmail.com>
escreveu:

> Em 13 de março de 2015 12:07, Junior Miranda <flmirandajun...@gmail.com>
> escreveu:
>
>> Boa tarde a todos
>>
>> Estou com problemas de lentidão em uma consulta select * from. A tabelas
>> possui 20 mil registros, e estou tentando criar um cursor. O problema é que
>> não estou conseguindo
>> retornar os dados, fica informando que a query está sendo executada e não
>> sai disso. O objetivo é agilizar o retorno destes registros.
>>
>> (....)
>> $BODY$
>>    LANGUAGE 'plpgsql' VOLATILE;
>>
>
> Sei que pode não fazer diferença, mas sempre é motivo de divergências no
> banco de dados e loucuras em geral durante a implementação, mas você já
> tentou utilizar o tipo "STABLE" ao invés de "VOLATILE"?
> Sua função não faz modificações no banco, portanto ela não é volátil.
>
> Pode não dar em nada, porque já vi os tipos de função apresentar
> diferentes comportamentos em diferentes bancos/quantidade de
> registros/estatísticas, mas né, não custa fazer da forma correta.
>
> []'s
>

Favor ignorar a última mensagem.. Fiz o teste aqui e não resolve o
problema. O problema está no fetch mesmo, que não incrementa o cursor e
fica dando voltas no mesmo registro, aparentemente.
Já cogitaste utilizar um type, fazendo uma função com tipo de retorno SETOF
deste type?
Deste modo funcionaria mais ou menos como você quer, porém realizando um
loop em um record.

[]'s
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a