Execute várias funções juntas sem perder desempenho
Eu tenho esse processo que tem que fazer uma série de consultas, usando pl / pgsql:
--process:
SELECT function1();
SELECT function2();
SELECT function3();
SELECT function4();
Para poder executar tudo em uma chamada, criei uma função de processo como esta:
CREATE OR REPLACE FUNCTION process()
RETURNS text AS
$BODY$
BEGIN
PERFORM function1();
PERFORM function2();
PERFORM function3();
PERFORM function4();
RETURN 'process ended';
END;
$BODY$
LANGUAGE plpgsql
O problema é que, quando somar o tempo que cada função leva por si só, o total é de 200 segundos, enquanto o tempo que a funçãoprocess()
leva é mais de uma hora!
Talvez seja um problema de memória, mas não sei em qual configuraçãopostgresql.conf
devo mudar.
O banco de dados está sendo executado no PostgreSQL 9.4, no Debian 8.