2014-01-30 Marcos - GMail <[email protected]>

> Pessoal, uma vez assisti algumas palestras de postgresql e em uma delas,
> alguém falou sobre a possibilidade de alterar o parâmetro work_mem por
> sessão. Por exemplo: 40 usuários requisitando diversos relatórios dos quais
> todos tem ordenação.
>

Verifique a possibilidade de criação de índices que casam com o "ORDER BY",
muitas vezes evitará por completo a necessidade de uso de memória ou disco
para ordenação, o próprio índice trará os dados já ordenados. Se quiser,
envie-nos o EXPLAIN ANALYZE dessas consultas que podemos ajudar com dicas
de bons índices ou configurações adequadas.



> Nestas consultas, considerando que todas foram feitas em plpgsql, na
> primeira linha das mesmas, eu teria o comando *set work_mem = '15MB'; *
>
>
Em funções PL/pgSQL, é fácil:

    CREATE OR REPLACE FUNCTION public.dah()
     ....
*     SET work_mem TO '15MB'*
    AS $$
    ...
    $$;



> *É uma boa práticas? *
>
>
Bem, isso vai depender o quanto de memória disponível que seu servidor
possuirá. Pode ser até possível já manter 15MB para todos (o padrão, 1MB, é
bem conservativo).

A conta geral é que seria usado até (work_mem * max_connections) de memória
para ordeanação/bitmap/etc. A realidade é que pode ser mais do que isso,
mas essa é uma boa estimativa (já que muitas sessões vão usar menos).

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
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a