ÊTA!!!
Colega, no mundo Oracle, é comum termos centenas de milhares de linhas
escritas em PL/SQL. Esta linguagem é uma das coisas mais legais deste banco.
Sua funcionalidade não se restringe a fazer apenas SELECT's, mas aplicações
completas utilizando a mesma. Isto significa TELAS (Forms), RELATÓRIOS
(Reports), envio de e-mails (DBMS_SMTP), QUEUES (DBMS_AQ) ou CUBOS (DBMS_CUBE),
e mais uma infinidade de outras coisas utilizando loops.
Recentemente, a Oracle comprou um ERP (E-Business Suíte) formado por mais de
20 milhões de linhas nesta linguagem.
Os exemplos que foram passados foram formulados devido à problemas de
performance que eu encontrei após passar um pacote especificamente escrito em
PL/SQL para PL/pgSQL. Tal pacote é composto de diversas funções e, depois de
alguns testes, separei do código o que estava demorando mais: um loop e uma
recursividade.
Entendeu agora?
Munha intenção não é comparar nada, mas resolver um problema de performance
no PL/pgSQL. A diferença foi tão absurda que eu achei que tinha um problema na
máquina ou na instalação do Post, e então, recorrí à esta lista. Entendido que
o problema está na PL/pgSQL, e nada pode ser feito, a conclusão é óbvia: não
vou poder fazer isto nesta linguagem, E ACABOU!
MAS se o Sr. quiser comparar benchmarks, talveza saída seja o TPC
(http://www.tpc.org/). Numa olhada rápida, encontrei Sybase, MySQL, DB2,
Oracle, EXASOL, SQL Server, ParAccel, Teradata, mas não encontrei nada do Post.
OU o senhor mesmo pode me passar, através desta lista, ou diretamente ao meu
e-mail, os testes que o senhor julgar significativos, e eu os executarei aquí
na empresa.
Atenciosamente,
Márcio de Figueiredo Moura e Castro
________________________________
De: Euler Taveira de Oliveira <[email protected]>
Para: Comunidade PostgreSQL Brasileira <[email protected]>
Enviadas: Sexta-feira, 25 de Setembro de 2009 1:15:11
Assunto: Re: [pgbr-geral] Res: Res: Res: Memory (heap)
MARCIO CASTRO escreveu:
> Muito obrigado pelo seu esforço em me ajudar, mas entenda que me foi
> vendida a idéia de que eu poderia portar todos os programas em PL/SQL
> para PL/pgSQL, e, além disto não ser verdade, a performance mostrou-se
> muito ruim - para os testes que eu realizei.
As linguagens possuem sintaxes bem similares; é claro, que as particularidades
do Oracle embutidas na PL/SQL você terá que reescrever. Não há almoço grátis. ;)
As suas funções em PL/PgSQL serão tão irreais quanto a que você apresentou? É
como o Tom disse na outra lista: plpgsql foi desenhada para cenários onde há
bastante acesso a dados.
Particularmente eu acho muito difícil tu comparares laranja com maça. Até
porque se tu montares um teste querendo comparar puramente a velocidades dos
motores das duas linguagens vais ter que desconsiderar as diferenças de tempo
com relação ao acesso aos dados.
> Ok; compilando em C fica mais rápido, mas você testou em qual máquina?
No meu notebook (Pentium M 1.86 GHz). A execução da função em questão é
puramente CPU-bound, ou seja, quanto mais poderosa a sua CPU mais rápido será
a execução. A mesma função em PL/Perl executou em ~ 25 segundos.
> Tentei depois com uma outra função, desta vez para calcular o
> fibonacci, mas o resultado também foi bem mais favorável ao Oracle.
> Esta situação "quebrou as minhas pernas" - adeus projeto integrado
> Postgres/Oracle. Ou, pelo menos, por enquanto.
>
Acho que você *não* está fazendo um comparação justa. Digo isso porque a
principal vantagem de ter funções no SGBD é justamente tirar proveito do
acesso aos dados. Sugiro que realize testes mais sérios antes de ficar tirar
conclusões utilizando apenas um caso que está muito longe de fazer parte de
qualquer tipo de aplicação real.
--
Euler Taveira de Oliveira
http://www.timbira.com/
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
____________________________________________________________________________________
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