Estou executando uma rotina de reprocessamento na minha máquina, que
roda Windows Vista Home Premium 32-bit e PostgreSQL 8.4.1. Com o mesmo
database em um servidor de produção rodando Ubuntu Linux 8.04 32-bit e
PostgreSQL 8.2.12, o erro não acontece.

A rotina é na aplicação, executando mais de 50.000 comandos SQL dentro
da transação (distribuídos entre INSERTS, UPDATES, DELETES e SELECTS).
Chega um momento que o PostgreSQL simplesmente "abre as pernas". A
máquina fica impossível de ser utilizada, e logo em seguida a mensagem
de erro é retornada pela aplicação:

[SQL Error]
Connectivity error:

[SQL State]
53200

[Mensagem do driver ODBC]
ERROR: out of memory
Failed on request of size 88.;
Error while executing the query

[Código SQL]
SELECT * FROM PCCMESD0 WHERE EMPFIL='0012' AND ITEM='414719' AND
DTMOVI='2009-11-27'

O que poderia ser? Seria este algum bug da 8.4.1 ou um bom motivo para
usar Linux? ;)

Por questões de tempo e complexidade da rotina, não há como
implementá-la dentro de uma função em Pl/PgSQL. Eu sei que esta é a
melhor alternativa, mas não dispomos de tempo para fazê-lo, visto que
todas as regras de negócio utilizas estão no aplicativo.

-- 
TIAGO J. ADAMI
http://www.adamiworks.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a