2014-07-25 6:30 GMT-03:00 Flavio Henrique Araque Gurgel <fha...@gmail.com>:
> Por outro lado, dentro de um execute, o search_path da sessão não é > utilizado. > > Opa. Até onde sei o search_path é respeitado dentro de um EXECUTE sim. A não ser que seja um comportamento que tenha sido alterado nas versões mais recentes. Só se usa execute quando você precisa de SQL dinâmico, ou seja, a consulta > e nomes de tabelas e colunas são variáveis. > Eu vejo mais um uso para atingir melhor performance, algumas vezes não queremos um plano genérico, e é melhor colocar uma consulta num EXECUTE do que executar diretamente (evitando o plano de execução sem os valores reais, a.k.a, plano genérico). Isso é comum quando a tabela envolvida está particionada (basicamente um plano genérico vai ter que unir todas tabelas filhas, mesmo que a consulta use a chave do particionamento). Entretanto, a partir da versão 9.2 os planos preparados ficaram melhores (basicamente é feito um re-planejamento no momento da execução em "determinadas situações") e não é mais comum necessitar de recorrer ao EXECUTE para tanto (apesar de que já ouvi casos onde ainda é necessário, já que as "determinadas situações" são difíceis de prever). Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral