PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Consulta lenta na visualização UNION ALL


Este parece ser um caso de erro do piloto. O plano de consulta "v" seleciona pelo menos 5 tabelas diferentes.

Agora, você tem certeza de que está conectado ao banco de dados correto? Talvez existam algumas configurações de search_path funky? Talvez t1 e t2 sejam realmente visualizações (possivelmente em um esquema diferente)? Talvez você esteja de alguma forma selecionando da visão errada?

Editado após esclarecimento:

Você está usando um recurso bastante novo chamado "remoção de associação" :http:// wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.0#Join_Removal

http://rhaas.blogspot.com/2010 /06/why-join-removal-is-cool.html

Parece que o recurso não entra em ação quando todos os sindicatos estão envolvidos. Você provavelmente terá que reescrever a visão usando apenas as duas tabelas necessárias.

outra edição:você parece estar usando um agregado (como "selecionar contagem(*) de v" vs. "selecionar * de v"), que poderia obter planos muito diferentes em face da remoção de junção. Acho que não iremos muito longe sem você postar as consultas reais, definições de visão e tabela e planos usados ​​...