Eu tenho uma junção de tabela grande nas chaves que não usa o índice.
Consulte e planeje aqui : https://explain.dalibo.com/plan/15a6a91492g8g935#plan/node/5
Ambas as tabelas possuem um índice na chave, assim:
CREATE UNIQUE INDEX "stage_fact_revenue_900_idx_a" ON "stage"."stage_fact_revenue_900_add_dims" USING BTREE ("date","billed_relation_id","subject_client_id","identifier","revenue_type");
CREATE UNIQUE INDEX "fact_revenue_idx_a" ON "star"."fact_revenue" USING BTREE ("date","identifier","billed_relation_id","subject_client_id","revenue_type");
mas o índice não é usado (consulte o plano de consulta).
Alguma pista de por que isso não está acontecendo? As maiores etapas são classificadas, posso pré-classificar as tabelas para evitar isso?
A melhor resposta veio deste post :
No final, descobri que o principal absorvedor de tempo era outra coisa: a consulta era usada para inserir dados em uma tabela e essa tabela continha 17 índices.