2013/7/1 Luiz Carlos L. Nogueira Jr. <lcnogueir...@gmail.com>

> Pessoal,
> Configurei o work_mem do meu postgres para 4MB.
> Só que aparecem mais linhas no meu log e com tamanhos menores que 4MB.
>
>
Em geral, a conta deve ser:

work_mem (novo) = wok_mem (antigo) + maior_arquivo_temporario + valor_extra

Ou seja, o valor do arquivo temporário que aparece pode ser o que o
PostgreSQL precisou ***além*** do work_mem. O valor_extra é difícil de
calcular, mas pode ser uma aproximação.



> 2013-07-01 11:08:26 BRT [25765]: [217-1] db=pje_jud1g_descanso_p,user=
> user_pje_jud1g@192.168.252.19(35567) 0:13/1092 LOG:  temporary file: path
> "base/pgsql_tmp/pgsql_tmp25765.107", size 504624
> 2013-07-01 11:08:35 BRT [26091]: [135-1] db=pje_jud1g_descanso_p,user=
> user_pje_jud1g@192.168.252.19(35683) 0:40/778 LOG:  temporary file: path
> "base/pgsql_tmp/pgsql_tmp26091.66", size 3476016
> 2013-07-01 11:08:35 BRT [26091]: [137-1] db=pje_jud1g_descanso_p,user=
> user_pje_jud1g@192.168.252.19(35683) 0:40/778 LOG:  temporary file: path
> "base/pgsql_tmp/pgsql_tmp26091.67", size 2801864
>
>
No seu caso eu colocaria work_mem para pelo menos 10MB (se tiver memória
para isso, claro), pois veja que a seção 16091 gerou cerca de 6MB de
arquivos temporários.


> Isso acontece pq "estourou" meu maintenance_work_mem?
> work_mem = 4MB
> maintenance_work_mem = 1500MB
>

Nesse caso ocorreu por ter estourado o work_mem, não o maintenance_work_mem.
A não ser que estava executando algum CREATE INDEX, ADD CONSTRAINT, etc.


Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a