MARCIO CASTRO escreveu:
>   Mas a pergunta que não quer calar é a seguinte: porquê é que o
> PL/pgSQL é tão mais lento do que o PL/SQL?
> 
Não dá para comparar laranja com maça. Fiquei curioso em testar a sua função
mas no momento não tenho um servidor Oracle para testá-la.

O Oracle com certeza deve ter um otimização para tal laço trivial; o
PostgreSQL talvez esteja pecando nisso.

[Fazendo alguns teste de performance...]

A função function1() (versão em PL/PgSQL) e a function2() (versão em C) estão
em anexo.

Pelo que pude notar no oprofile, o problema está relacionado a alocação
excessiva de contexto quando talvez não seja necessário. Estou sem tempo para
investigar o problema agora mas eu reportei o que testei para -hackers [1].

euler=# select function1();
 function1
-----------
 100000000
(1 row)

Time: 62107,607 ms
euler=# select function2();
 function2
-----------
 100000000
(1 row)

Time: 419,673 ms

[1] http://archives.postgresql.org/pgsql-hackers/2009-09/msg01585.php


PS> não responda em outros assuntos. Isso bagunça o histórico da lista e
dificulta que estiver buscando no histórico posteriormente.


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/

Attachment: a.tgz
Description: application/compressed-tar

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a