As declarações preparadas são otimizadas sem o conhecimento dos parâmetros reais. No PostgreSQL 9.1, as instruções preparadas são otimizadas apenas para os valores mais comuns. Quando as instruções preparadas são lentas, você precisa usar um SQL dinâmico. O PostgreSQL tem uma ótima API - consultas paramétricas - é algo entre instruções preparadas e consultas usuais - É seguro contra injeção de SQL e é imune a problemas com otimização cega.