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