Caro André:
Muito obrigado pela dica. A fib(35) passou para 60s, e a function1 para 19s.
Mas mesmo assim, a performance ainda está muito aquém dos tempos do Oracle
(21,04s e 3,5s) em um mísero Celeron.
Termino agradecendo muito aos integrantes desta lista que prontamente me
ajudaram. Acho que o PostgreSQL tem um próspero futuro, mas a performance do
PLPGSQL inviabiliza a portabilidade do Oracle - PL/SQL. Ou, ao menos, para este
projeto.
Atenciosamente,
Márcio de Figueiredo Moura e Castro
________________________________
De: André Volpato <[email protected]>
Para: Comunidade PostgreSQL Brasileira <[email protected]>
Enviadas: Segunda-feira, 21 de Setembro de 2009 10:38:31
Assunto: Re: [pgbr-geral] Res: Performance usando funções em PLPGSQL
comparadas ao PL/SQL no Oracle
MARCIO CASTRO escreveu:
>
>(...)
>
>
>
Para
>complementar o que eu estou falando, criei a função que calcula o
>número do Fibonacci. No Oracle, levou 21,04 segundos, e no PostgreSQL,
>82,53 segundos (select fib(35)).
>
>>Pergunto novamente aos senhores então: a diferença é esta mesmo? Alguém
>do grupo poderia compilar a função abaixo (Fibonacci) e me retornar o
>tempo de execução?
>
>
Pra você ter um ganho de performance, altere a instrução "VOLATILE"
para "IMMUTABLE".
Aqui (Xeon(R) E5420 @ 2.50GHz) , o menor tempo que consegui foram 45s.
Para esta query recursiva em PL, o limite vai ser o processador mesmo.
Tente reescrever sem recursividade, só por curiosidade. Creio que este
tipo de abordagem em PL fique lenta mesmo.
Doctor
>House in apology to Mike Jagger
>
Mick !
;)
[]´s, André Volpato
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral