explain.depesz.com

PostgreSQL's explain analyze made readable

Result: gFGF

Settings
# exclusive inclusive rows x rows loops node
1. 0.000 0.000 ↓ 0.0

Nested Loop (cost=92.05..1,028.27 rows=1 width=62) (actual rows= loops=)

  • Join Filter: (crc_comp.id_componente_curricular = mc.id_componente_curricular)
2. 0.000 0.000 ↓ 0.0

Nested Loop (cost=91.61..909.34 rows=1 width=58) (actual rows= loops=)

  • Join Filter: (ovs.id_oferta_vagas_sisu_ovs = cs.id_oferta_vagas_inscrito_sisu_cs)
3. 0.000 0.000 ↓ 0.0

Nested Loop (cost=91.19..839.78 rows=1 width=50) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Nested Loop (cost=90.77..837.59 rows=1 width=46) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop (cost=90.34..516.81 rows=5 width=30) (actual rows= loops=)

  • Join Filter: (crc_comp.id_curriculo = d.id_curriculo)
6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=51.29..328.92 rows=4 width=20) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Hash Join (cost=51.01..306.42 rows=41 width=16) (actual rows= loops=)

  • Hash Cond: (crc_comp.id_curriculo = crc.id_curriculo)
8. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on curriculo_componente crc_comp (cost=3.89..258.87 rows=164 width=8) (actual rows= loops=)

  • Recheck Cond: (semestre_oferta = 1)
  • Filter: (obrigatoria IS TRUE)
9. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on idx_semestre_oferta_cc (cost=0.00..3.85 rows=328 width=0) (actual rows= loops=)

  • Index Cond: (semestre_oferta = 1)
10. 0.000 0.000 ↓ 0.0

Hash (cost=42.57..42.57 rows=364 width=8) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Seq Scan on curriculo crc (cost=0.00..42.57 rows=364 width=8) (actual rows= loops=)

  • Filter: ((vigente IS TRUE) AND (ativo IS TRUE))
12. 0.000 0.000 ↓ 0.0

Index Scan using oferta_vagas_sisu_un on tb_oferta_vagas_sisu_ovs ovs (cost=0.28..0.54 rows=1 width=8) (actual rows= loops=)

  • Index Cond: ((id_matriz_curricular_ovs = crc.id_matriz) AND (id_edicao_sisu_ovs = 4))
13. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on discente d (cost=39.05..46.86 rows=9 width=22) (actual rows= loops=)

  • Recheck Cond: ((id_curriculo = crc.id_curriculo) AND (nivel = 'G'::bpchar))
14. 0.000 0.000 ↓ 0.0

BitmapAnd (cost=39.05..39.05 rows=9 width=0) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on idx_discente_id_curriculo_btree (cost=0.00..17.41 rows=1,854 width=0) (actual rows= loops=)

  • Index Cond: (id_curriculo = crc.id_curriculo)
16. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on idx_discente_nivel_btree (cost=0.00..20.93 rows=1,854 width=0) (actual rows= loops=)

  • Index Cond: (nivel = 'G'::bpchar)
17. 0.000 0.000 ↓ 0.0

Index Scan using idx_movimentacao_aluno_id_discente_ano_periodo_ativo on movimentacao_aluno m (cost=0.42..64.07 rows=9 width=24) (actual rows= loops=)

  • Index Cond: ((id_discente = d.id_discente) AND (ativo = true))
  • Filter: ((data_retorno IS NULL) AND (ativo IS TRUE))
18. 0.000 0.000 ↓ 0.0

Index Scan using pessoa_pkey on pessoa p (cost=0.42..2.19 rows=1 width=12) (actual rows= loops=)

  • Index Cond: (id_pessoa = d.id_pessoa)
19. 0.000 0.000 ↓ 0.0

Index Scan using idx_candidato_sisu_cs_cpf_opcao on tb_candidato_sisu_cs cs (cost=0.42..40.78 rows=2,302 width=24) (actual rows= loops=)

  • Index Cond: (num_cpf_cs = p.cpf_cnpj)
20. 0.000 0.000 ↓ 0.0

Index Scan using turma_discente_sitmat on matricula_componente mc (cost=0.43..107.93 rows=880 width=16) (actual rows= loops=)

  • Index Cond: ((id_discente = d.id_discente) AND (id_situacao_matricula = ANY ('{4,21,22,23}'::integer[])))