explain.depesz.com

PostgreSQL's explain analyze made readable

Result: DQi9 : ronaldo

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

Nested Loop (cost=532.81..534.93 rows=1 width=162) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Unique (cost=532.39..532.45 rows=1 width=144) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Sort (cost=532.39..532.39 rows=1 width=144) (actual rows= loops=)

  • Sort Key: term.term_codigo, term.term_numero_terminal, term.term_vtec_codigo, veic_veiculo.veic_oras_codigo, viag_viagem.viag_codigo, (COALESCE(vmoo_viagem_motorista.vmoo_moto_pfis_pess_oras_codigo, mvel_motorista_veiculo.mvel_moto_pfis_pess_oras_codigo)), (COALESCE(viag_viagem.viag_tran_pess_oras_codigo, veic_veiculo.veic_pess_oras_codigo_propri)), (COALESCE(viag_viagem.viag_pgpg_codigo, oras_objeto_rastreado.oras_pgpg_codigo)), viag_viagem.viag_emba_pjur_pess_oras_codigo, (COALESCE(eloc_embarcador_local.eloc_refe_codigo, tloc_transportador_local.tloc_refe_codigo)), (COALESCE(eloc_embarcador_local.eloc_raio, tloc_transportador_local.tloc_raio)), paip1.paip_valor, paip2.paip_valor, paip3.paip_valor, upos_ultima_posicao.upos_latitude, upos_ultima_posicao.upos_longitude, (COALESCE(eloc_embarcador_local.eloc_hora_inicio, tloc_transportador_local.tloc_hora_inicio)), (COALESCE(eloc_embarcador_local.eloc_hora_fim, tloc_transportador_local.tloc_hora_fim)), ((CURRENT_DATE + COALESCE(eloc_embarcador_local.eloc_hora_inicio, tloc_transportador_local.tloc_hora_inicio))), ((CURRENT_DATE + COALESCE(eloc_embarcador_local.eloc_hora_fim, tloc_transportador_local.tloc_hora_fim))), jmde_jornada_motora_deslocamento.jmde_codigo, eloc_embarcador_local.eloc_codigo, tloc_transportador_local.tloc_codigo, upos_ultima_posicao.upos_data_comp_bordo, jdes_jornada_deslocamento.jdes_codigo
4. 0.000 0.000 ↓ 0.0

Nested Loop (cost=105.25..532.38 rows=1 width=144) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop (cost=104.97..532.02 rows=1 width=173) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=104.68..531.67 rows=1 width=166) (actual rows= loops=)

  • Filter: ((COALESCE(eloc_embarcador_local.eloc_hora_inicio, tloc_transportador_local.tloc_hora_inicio) <> '00:00:00'::time without time zone) AND (COALESCE(eloc_embarcador_local.eloc_hora_fim, tloc_transportador_local.tloc_hora_fim) <> '00:00:00'::time without time zone) AND (upos_ultima_posicao.upos_data_comp_bordo >= (CURRENT_DATE + COALESCE(eloc_embarcador_local.eloc_hora_inicio, tloc_transportador_local.tloc_hora_inicio))) AND (upos_ultima_posicao.upos_data_comp_bordo <= (CURRENT_DATE + COALESCE(eloc_embarcador_local.eloc_hora_fim, tloc_transportador_local.tloc_hora_fim))))
7. 0.000 0.000 ↓ 0.0

Nested Loop (cost=104.39..529.52 rows=1 width=142) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=104.11..528.82 rows=2 width=135) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Nested Loop (cost=103.82..528.38 rows=1 width=131) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Nested Loop (cost=103.54..527.92 rows=1 width=107) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Nested Loop (cost=103.26..526.32 rows=1 width=107) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Index Only Scan using pite_pg_item_idx_10000 on pite_pg_item (cost=0.27..3.58 rows=2 width=4) (actual rows= loops=)

  • Index Cond: (pite_codigo = ANY ('{344,279}'::integer[]))
13. 0.000 0.000 ↓ 0.0

Materialize (cost=102.98..522.72 rows=1 width=103) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=102.98..522.71 rows=1 width=103) (actual rows= loops=)

  • Filter: ((COALESCE(vmoo_viagem_motorista.vmoo_moto_pfis_pess_oras_codigo, mvel_motorista_veiculo.mvel_moto_pfis_pess_oras_codigo) IS NOT NULL) AND (COALESCE(vmoo_viagem_motorista.vmoo_moto_pfis_pess_oras_codigo, mvel_motorista_veiculo.mvel_moto_pfis_pess_oras_codigo) = jmde_jornada_motora_deslocamento.jmde_moto_pfis_pess_oras_codigo))
15. 0.000 0.000 ↓ 0.0

Nested Loop (cost=101.54..516.68 rows=1 width=47) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=1.66..21.01 rows=1 width=12) (actual rows= loops=)

  • Hash Cond: (jmde_jornada_motora_deslocamento.jmde_codigo = jdes_jornada_deslocamento.jdes_jmde_codigo)
  • Filter: (jdes_jornada_deslocamento.jdes_codigo IS NULL)
17. 0.000 0.000 ↓ 0.0

Seq Scan on jmde_jornada_motora_deslocamento (cost=0.00..16.52 rows=752 width=8) (actual rows= loops=)

  • Filter: ((jmde_data_inicio IS NOT NULL) AND (jmde_data_fim IS NULL))
18. 0.000 0.000 ↓ 0.0

Hash (cost=1.65..1.65 rows=1 width=8) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Index Scan using jdes_tipo_idx on jdes_jornada_deslocamento (cost=0.28..1.65 rows=1 width=8) (actual rows= loops=)

  • Index Cond: ((jdes_tipo)::text = 'PAL'::text)
  • Filter: ((jdes_data_inicio IS NOT NULL) AND (jdes_data_fim IS NULL))
20. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=99.88..494.19 rows=148 width=35) (actual rows= loops=)

21. 0.000 0.000 ↓ 0.0

Nested Loop (cost=99.60..446.78 rows=148 width=31) (actual rows= loops=)

  • Join Filter: (orte_objeto_rastreado_termina.orte_oras_codigo = oras_objeto_rastreado.oras_codigo)
22. 0.000 0.000 ↓ 0.0

Nested Loop (cost=99.31..326.04 rows=339 width=31) (actual rows= loops=)

23. 0.000 0.000 ↓ 0.0

Hash Join (cost=99.03..157.25 rows=339 width=23) (actual rows= loops=)

  • Hash Cond: (orte_objeto_rastreado_termina.orte_term_codigo = term.term_codigo)
24. 0.000 0.000 ↓ 0.0

Seq Scan on orte_objeto_rastreado_termina (cost=0.00..52.53 rows=2,170 width=8) (actual rows= loops=)

  • Filter: ((orte_sequencia)::text = 'P'::text)
25. 0.000 0.000 ↓ 0.0

Hash (cost=86.89..86.89 rows=971 width=19) (actual rows= loops=)

26. 0.000 0.000 ↓ 0.0

Index Scan using term_terminal_idx_70445 on term_terminal term (cost=0.28..86.89 rows=971 width=19) (actual rows= loops=)

  • Index Cond: (term_ativo = 'S'::bpchar)
27. 0.000 0.000 ↓ 0.0

Index Scan using veic_veiculo_pkey on veic_veiculo (cost=0.29..0.50 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (veic_oras_codigo = orte_objeto_rastreado_termina.orte_oras_codigo)
28. 0.000 0.000 ↓ 0.0

Index Scan using oras_objeto_rastreado_pkey on oras_objeto_rastreado (cost=0.29..0.34 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (oras_codigo = veic_veiculo.veic_oras_codigo)
29. 0.000 0.000 ↓ 0.0

Index Scan using mvel_moto_veic_idx on mvel_motorista_veiculo (cost=0.28..0.31 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (veic_veiculo.veic_oras_codigo = mvel_veic_oras_codigo)
  • Filter: ((mvel_ativo = 'S'::bpchar) AND ((mvel_precedencia)::text = '1'::text))
30. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=1.44..5.94 rows=8 width=64) (actual rows= loops=)

31. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=1.15..4.38 rows=1 width=24) (actual rows= loops=)

32. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.86..2.97 rows=1 width=20) (actual rows= loops=)

33. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.57..1.34 rows=4 width=8) (actual rows= loops=)

34. 0.000 0.000 ↓ 0.0

Index Only Scan using term_terminal_pkey on term_terminal (cost=0.28..0.43 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (term_codigo = term.term_codigo)
35. 0.000 0.000 ↓ 0.0

Index Scan using vter_viagem_terminal_idx_70507 on vter_viagem_terminal (cost=0.29..0.74 rows=17 width=8) (actual rows= loops=)

  • Index Cond: (vter_term_codigo = term_terminal.term_codigo)
  • Filter: (((vter_precedencia)::text = '1'::text) AND (vter_ativo = 'S'::bpchar))
36. 0.000 0.000 ↓ 0.0

Index Scan using viag_viagem_pkey on viag_viagem (cost=0.29..0.41 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (viag_codigo = vter_viagem_terminal.vter_viag_codigo)
  • Filter: ((viag_data_inicio IS NOT NULL) AND (viag_data_fim IS NULL))
37. 0.000 0.000 ↓ 0.0

Index Scan using beg_vmoo_viagem_motorista_vmoo_viag_codigo_i on vmoo_viagem_motorista (cost=0.29..1.39 rows=2 width=8) (actual rows= loops=)

  • Index Cond: (vmoo_viag_codigo = viag_viagem.viag_codigo)
38. 0.000 0.000 ↓ 0.0

Index Scan using beg_eloc_embarcador_local_eloc_emba_pjur_pess_oras_codigo_i on eloc_embarcador_local (cost=0.29..1.47 rows=8 width=44) (actual rows= loops=)

  • Index Cond: (eloc_emba_pjur_pess_oras_codigo = viag_viagem.viag_emba_pjur_pess_oras_codigo)
39. 0.000 0.000 ↓ 0.0

Index Scan using pgai_pg_associa_item_idx_70423 on pgai_pg_associa_item (cost=0.29..2.91 rows=2 width=12) (actual rows= loops=)

  • Index Cond: ((pgai_pgpg_codigo = COALESCE(viag_viagem.viag_pgpg_codigo, oras_objeto_rastreado.oras_pgpg_codigo)) AND (pgai_pite_codigo = pite_pg_item.pite_codigo))
40. 0.000 0.000 ↓ 0.0

Index Scan using upos_ultima_posicao_beg_i04 on upos_ultima_posicao (cost=0.28..0.45 rows=1 width=36) (actual rows= loops=)

  • Index Cond: ((upos_vtec_codigo = term.term_vtec_codigo) AND ((upos_term_numero_terminal)::text = (term.term_numero_terminal)::text))
41. 0.000 0.000 ↓ 0.0

Index Scan using beg_vtra_veiculo_transportador_vtra_veic_oras_codigo_i on vtra_veiculo_transportador (cost=0.29..0.40 rows=4 width=8) (actual rows= loops=)

  • Index Cond: (vtra_veic_oras_codigo = veic_veiculo.veic_oras_codigo)
42. 0.000 0.000 ↓ 0.0

Index Scan using paip_pg_associa_item_param_idx_10000 on paip_pg_associa_item_param paip2 (cost=0.29..0.34 rows=1 width=7) (actual rows= loops=)

  • Index Cond: (paip_pgai_codigo = pgai_pg_associa_item.pgai_codigo)
  • Filter: ((paip_valor IS NOT NULL) AND (paip_sequencia = 2))
43. 0.000 0.000 ↓ 0.0

Index Scan using beg_tloc_transportador_local_tloc_tran_pess_oras_codigo_i on tloc_transportador_local (cost=0.29..1.40 rows=25 width=32) (actual rows= loops=)

  • Index Cond: (tloc_tran_pess_oras_codigo = COALESCE(vtra_veiculo_transportador.vtra_tran_pess_oras_codigo, COALESCE(viag_viagem.viag_tran_pess_oras_codigo, veic_veiculo.veic_pess_oras_codigo_propri)))
44. 0.000 0.000 ↓ 0.0

Index Scan using paip_pg_associa_item_param_idx_10000 on paip_pg_associa_item_param paip1 (cost=0.29..0.34 rows=1 width=7) (actual rows= loops=)

  • Index Cond: (paip_pgai_codigo = pgai_pg_associa_item.pgai_codigo)
  • Filter: ((paip_valor IS NOT NULL) AND (paip_sequencia = 1))
45. 0.000 0.000 ↓ 0.0

Index Scan using paip_pg_associa_item_param_idx_10000 on paip_pg_associa_item_param paip3 (cost=0.29..0.34 rows=1 width=7) (actual rows= loops=)

  • Index Cond: (paip_pgai_codigo = pgai_pg_associa_item.pgai_codigo)
  • Filter: ((paip_valor IS NOT NULL) AND (paip_sequencia = 3))
46. 0.000 0.000 ↓ 0.0

Index Scan using refe_referencia_idx_70431 on refe_referencia (cost=0.42..2.46 rows=1 width=22) (actual rows= loops=)

  • Index Cond: (refe_codigo = (COALESCE(eloc_embarcador_local.eloc_refe_codigo, tloc_transportador_local.tloc_refe_codigo)))
  • Filter: (distancia_dois_pontos_em_metros((upos_ultima_posicao.upos_latitude)::double precision, (upos_ultima_posicao.upos_longitude)::double precision, (refe_latitude)::double precision, (refe_longitude)::double precision) <= ((COALESCE(eloc_embarcador_local.eloc_raio, tloc_transportador_local.tloc_raio)))::double precision)