quais são as vantagens de usar plpgsql no PostgreSQL

votos
8

Além do poder de açúcar e expressividade sintática quais são as diferenças na eficiência de tempo de execução. Quer dizer, plpgsql pode ser mais rápido do que, digamos plpythonu ou pljava? Ou são todos aproximadamente igual?

Estamos usando procedimentos armazenados para a tarefa de detectar quase duplicatas registros de pessoas em um banco de dados de tamanho moderado (cerca de 10M de registros)

Publicado 29/10/2008 em 16:42
fonte usuário
Em outras línguas...                            


3 respostas

votos
8

plpgsql proporciona maior segurança de tipo creio eu, você tem que executar conversões explícitas, se você quiser executar operações usando duas colunas diferentes do mesmo tipo, como varchar e texto ou int4 e int8. Isto é importante porque se você precisa ter seus índices de uso proc armazenados, postgres requer que os tipos corresponder exatamente entre condições de junção (edit: por igualdade verifica também eu acho).

Pode haver uma instalação para este efeito nos outros idiomas, porém, eu não usei-los. Em qualquer caso, espero que este lhe dá um melhor ponto de partida para a sua investigação.

Respondeu 29/10/2008 em 16:54
fonte usuário

votos
2

Sem fazer teste real, eu esperaria plpgsql a ser um pouco mais eficiente do que outras línguas, porque é pequena. Dito isto, lembre-se que as funções SQL são susceptíveis de ser ainda mais rápido do que plpgsql, se a função é simples o suficiente para que você pode escrevê-lo em apenas SQL.

Respondeu 30/10/2008 em 23:19
fonte usuário

votos
6

plpgsql está muito bem integrado com o SQL - o código-fonte deve ser muito limpo e legível. Para linguagens SQL como PLJava ou plpython, instruções SQL tem que ser isolado - SQL não faz parte da linguagem. Então você tem que escrever pouco mais de código bit. Se o seu procedimento tem grande quantidade de instruções SQL, então procedimento plpgsql deve ser mais limpo, mais curto e pouco mais rápido. Quando o procedimento não tem instruções SQL, em seguida, procedimentos de linguagens externas pode ser mais rápido - mas linguagens externas (interpreta) precisa de algum tempo para inicialização - assim para tarefa simples, procedimentos em SQL ou linguagem plpgsql deve ser mais rápido.

Linguagens externas são usados quando você precisa de algumas funcionalidades como o acesso à rede, acesso ao sistema de arquivos - http://www.postgres.cz/index.php/PL/Perlu_-_Untrusted_Perl_%28en%29

O que eu sei - as pessoas geralmente usam uma combinação de idiomas PL - (SQL, plpgsql, plperl) ou (SQL, plpgsql, plpython).

Respondeu 22/11/2009 em 21:44
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more