Eu sou novato em coisas de DB. E meu conhecimento de banco de dados é muito antigo (em torno de MSSQL2000). Tudo o que me lembro é que os procedimentos armazenados são mais rápidos do que as consultas comuns porque evitam a compilação e a otimização da consulta.
Eu sei que o PG tem dois tipos de opções de cache de consulta. Instrução preparada (consulta em cache temporária) e função (consulta em cache persistente, que é um procedimento armazenado no MSSQL).
Enfim, hoje ouvi o conceito de cerca de otimização . Qual é o otimizador que vê as funções como uma caixa preta opaca, portanto não pode otimizar o interior. Conceitualmente, pode estar certo.
Isso é verdade mesmo que as funções sejam totalmente escritas apenas com PL/pgSQL? Ou apenas uma limitação apenas para linguagens não SQL? Tenho alguma chance de obter melhor desempenho usando PL/pgSQL?