explain.depesz.com

PostgreSQL's explain analyze made readable

Result: YZFU

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

CTE Scan on teste (cost=639,975.40..639,977.48 rows=104 width=912) (actual rows= loops=)

2.          

CTE viag

3. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=24.31..24.37 rows=1 width=150) (actual rows= loops=)

  • Group Key: vvei_viagem_veiculo.vvei_veic_oras_codigo, viag_viagem.viag_codigo_sm, trans.pjur_razao_social, trans.pjur_codigo_cliente, emb.pjur_razao_social, emb.pjur_codigo_cliente, pp.prod_descricao, tp.tpro_descricao
4. 0.000 0.000 ↓ 0.0

Sort (cost=24.31..24.32 rows=1 width=150) (actual rows= loops=)

  • Sort Key: vvei_viagem_veiculo.vvei_veic_oras_codigo, viag_viagem.viag_codigo_sm, trans.pjur_razao_social, trans.pjur_codigo_cliente, emb.pjur_razao_social, emb.pjur_codigo_cliente, pp.prod_descricao, tp.tpro_descricao
5. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=10.43..24.30 rows=1 width=150) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=10.29..24.14 rows=1 width=140) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=10.01..23.81 rows=1 width=120) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Nested Loop (cost=9.72..23.42 rows=1 width=86) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Nested Loop (cost=9.43..23.02 rows=1 width=52) (actual rows= loops=)

  • Join Filter: (carga.vloc_viag_codigo = vvei_viagem_veiculo.vvei_viag_codigo)
10. 0.000 0.000 ↓ 0.0

Nested Loop (cost=9.00..22.40 rows=1 width=60) (actual rows= loops=)

  • Join Filter: (vlev_viagem_local_evento_1.vlev_vloc_codigo = d_saida.vlev_vloc_codigo)
11. 0.000 0.000 ↓ 0.0

Nested Loop (cost=8.43..20.20 rows=1 width=64) (actual rows= loops=)

  • Join Filter: (vlev_viagem_local_evento_1.vlev_vloc_codigo = d_entrada.vlev_vloc_codigo)
12. 0.000 0.000 ↓ 0.0

Nested Loop (cost=7.86..17.96 rows=1 width=52) (actual rows= loops=)

  • Join Filter: (vlev_viagem_local_evento.vlev_vloc_codigo = c_entrada.vlev_vloc_codigo)
13. 0.000 0.000 ↓ 0.0

Nested Loop Semi Join (cost=7.30..15.76 rows=1 width=56) (actual rows= loops=)

  • Join Filter: (carga.vloc_codigo = vlev_viagem_local_evento.vlev_vloc_codigo)
14. 0.000 0.000 ↓ 0.0

Nested Loop (cost=6.73..13.52 rows=1 width=52) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Nested Loop (cost=6.16..11.25 rows=1 width=40) (actual rows= loops=)

  • Join Filter: (viag_viagem.viag_codigo = carga.vloc_viag_codigo)
16. 0.000 0.000 ↓ 0.0

Nested Loop (cost=5.60..7.99 rows=1 width=32) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Nested Loop (cost=5.04..7.27 rows=1 width=12) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

HashAggregate (cost=4.47..4.48 rows=1 width=4) (actual rows= loops=)

  • Group Key: vlev_viagem_local_evento_1.vlev_vloc_codigo
19. 0.000 0.000 ↓ 0.0

Index Scan using idx_vlev__tlev_data on vlev_viagem_local_evento vlev_viagem_local_evento_1 (cost=0.57..4.47 rows=1 width=4) (actual rows= loops=)

  • Index Cond: ((vlev_tlev_codigo = ANY ('{1,8}'::integer[])) AND (vlev_data >= '2019-02-01 00:00:00'::timestamp without time zone) AND (vlev_data <= '2019-02-01 23:59:59'::timestamp without time zone))
20. 0.000 0.000 ↓ 0.0

Index Scan using vloc_viagem_local_pkey on vloc_viagem_local descarga (cost=0.56..2.79 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (vloc_codigo = vlev_viagem_local_evento_1.vlev_vloc_codigo)
  • Filter: (vloc_tpar_codigo = ANY ('{3,19}'::integer[]))
21. 0.000 0.000 ↓ 0.0

Index Scan using viag_viagem_pkey on viag_viagem (cost=0.56..0.73 rows=1 width=20) (actual rows= loops=)

  • Index Cond: (viag_codigo = descarga.vloc_viag_codigo)
  • Filter: (viag_data_cadastro >= (now() - '30 days'::interval))
22. 0.000 0.000 ↓ 0.0

Index Scan using vloc_viagem_local_idx_70499 on vloc_viagem_local carga (cost=0.56..2.90 rows=28 width=8) (actual rows= loops=)

  • Index Cond: ((vloc_viag_codigo = descarga.vloc_viag_codigo) AND (vloc_tpar_codigo = ANY ('{4,2}'::integer[])))
  • Filter: ((vloc_codigo IS NOT NULL) OR (descarga.vloc_codigo IS NOT NULL))
23. 0.000 0.000 ↓ 0.0

Index Scan using vlev_viagem_local_evento_001 on vlev_viagem_local_evento c_saida (cost=0.57..2.06 rows=21 width=12) (actual rows= loops=)

  • Index Cond: (vlev_vloc_codigo = carga.vloc_codigo)
  • Filter: (vlev_tlev_codigo = 8)
24. 0.000 0.000 ↓ 0.0

Index Scan using vlev_viagem_local_evento_001 on vlev_viagem_local_evento (cost=0.57..2.23 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (vlev_vloc_codigo = c_saida.vlev_vloc_codigo)
  • Filter: ((vlev_tlev_codigo = ANY ('{1,8}'::integer[])) AND (vlev_data >= '2019-02-01 00:00:00'::timestamp without time zone) AND (vlev_data <= '2019-02-01 23:59:59'::timestamp without time zone))
25. 0.000 0.000 ↓ 0.0

Index Scan using vlev_viagem_local_evento_001 on vlev_viagem_local_evento c_entrada (cost=0.57..1.94 rows=21 width=12) (actual rows= loops=)

  • Index Cond: (vlev_vloc_codigo = c_saida.vlev_vloc_codigo)
  • Filter: (vlev_tlev_codigo = 1)
26. 0.000 0.000 ↓ 0.0

Index Scan using vlev_viagem_local_evento_001 on vlev_viagem_local_evento d_entrada (cost=0.57..1.97 rows=21 width=12) (actual rows= loops=)

  • Index Cond: (vlev_vloc_codigo = descarga.vloc_codigo)
  • Filter: (vlev_tlev_codigo = 1)
27. 0.000 0.000 ↓ 0.0

Index Scan using vlev_viagem_local_evento_001 on vlev_viagem_local_evento d_saida (cost=0.57..1.94 rows=21 width=12) (actual rows= loops=)

  • Index Cond: (vlev_vloc_codigo = d_entrada.vlev_vloc_codigo)
  • Filter: (vlev_tlev_codigo = 8)
28. 0.000 0.000 ↓ 0.0

Index Scan using vvei_viagem_veiculo_idx_vvei_viag_codigo on vvei_viagem_veiculo (cost=0.43..0.58 rows=3 width=8) (actual rows= loops=)

  • Index Cond: (vvei_viag_codigo = descarga.vloc_viag_codigo)
29. 0.000 0.000 ↓ 0.0

Index Scan using pjur_pessoa_juridica_pkey on pjur_pessoa_juridica trans (cost=0.29..0.40 rows=1 width=42) (actual rows= loops=)

  • Index Cond: (pjur_pess_oras_codigo = viag_viagem.viag_tran_pess_oras_codigo)
30. 0.000 0.000 ↓ 0.0

Index Scan using pjur_pessoa_juridica_pkey on pjur_pessoa_juridica emb (cost=0.29..0.40 rows=1 width=42) (actual rows= loops=)

  • Index Cond: (viag_viagem.viag_emba_pjur_pess_oras_codigo = pjur_pess_oras_codigo)
31. 0.000 0.000 ↓ 0.0

Index Scan using prod_produto_pkey on prod_produto pp (cost=0.28..0.33 rows=1 width=28) (actual rows= loops=)

  • Index Cond: (prod_codigo = viag_viagem.viag_prod_codigo)
32. 0.000 0.000 ↓ 0.0

Index Scan using tpro_produto_pkey on tpro_produto tp (cost=0.14..0.16 rows=1 width=18) (actual rows= loops=)

  • Index Cond: (pp.prod_tpro_codigo = tpro_codigo)
33.          

CTE teste

34. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=21,811.04..639,951.03 rows=104 width=593) (actual rows= loops=)

  • Hash Cond: (veicveiculo.veic_oras_codigo = viag.vvei_veic_oras_codigo)
35. 0.000 0.000 ↓ 0.0

Hash Join (cost=21,811.00..639,949.56 rows=104 width=49) (actual rows= loops=)

  • Hash Cond: (veicveiculo.veic_tvei_codigo = tveitipoveiculo.tvei_codigo)
36. 0.000 0.000 ↓ 0.0

Nested Loop (cost=21,809.64..639,947.86 rows=104 width=41) (actual rows= loops=)

37. 0.000 0.000 ↓ 0.0

Hash Join (cost=21,809.22..639,898.70 rows=104 width=30) (actual rows= loops=)

  • Hash Cond: (termterminal.term_vtec_codigo = vtecversaotecnologia.vtec_codigo)
38. 0.000 0.000 ↓ 0.0

Nested Loop (cost=21,458.96..638,910.86 rows=46,370 width=20) (actual rows= loops=)

39. 0.000 0.000 ↓ 0.0

Hash Join (cost=21,458.40..134,498.98 rows=603,056 width=16) (actual rows= loops=)

  • Hash Cond: (termterminal.term_codigo = orteobjetorastreadotermina.orte_term_codigo)
40. 0.000 0.000 ↓ 0.0

Seq Scan on term_terminal termterminal (cost=0.00..107,291.65 rows=2,190,065 width=16) (actual rows= loops=)

41. 0.000 0.000 ↓ 0.0

Hash (cost=13,920.20..13,920.20 rows=603,056 width=8) (actual rows= loops=)

42. 0.000 0.000 ↓ 0.0

Seq Scan on orte_objeto_rastreado_termina orteobjetorastreadotermina (cost=0.00..13,920.20 rows=603,056 width=8) (actual rows= loops=)

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

Index Scan using upos_ultima_posicao_term_data_comp on upos_ultima_posicao (cost=0.56..0.83 rows=1 width=12) (actual rows= loops=)

  • Index Cond: (((upos_term_numero_terminal)::text = (termterminal.term_numero_terminal)::text) AND (upos_data_comp_bordo >= (now() - '6 mons'::interval)))
  • Filter: (termterminal.term_vtec_codigo = upos_vtec_codigo)
44. 0.000 0.000 ↓ 0.0

Hash (cost=276.42..276.42 rows=5,907 width=18) (actual rows= loops=)

45. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.28..276.42 rows=5,907 width=18) (actual rows= loops=)

46. 0.000 0.000 ↓ 0.0

Seq Scan on tecn_tecnologia tecntecnologia (cost=0.00..1.63 rows=63 width=14) (actual rows= loops=)

47. 0.000 0.000 ↓ 0.0

Index Scan using vtec_versao_tecnolog_idx_70502 on vtec_versao_tecnologia vtecversaotecnologia (cost=0.28..4.29 rows=7 width=8) (actual rows= loops=)

  • Index Cond: (vtec_tecn_codigo = tecntecnologia.tecn_codigo)
48. 0.000 0.000 ↓ 0.0

Index Scan using veic_veiculo__veic_oras_codigo__veic_tvei_codigo__idx on veic_veiculo veicveiculo (cost=0.42..0.47 rows=1 width=15) (actual rows= loops=)

  • Index Cond: (veic_oras_codigo = orteobjetorastreadotermina.orte_oras_codigo)
49. 0.000 0.000 ↓ 0.0

Hash (cost=1.16..1.16 rows=16 width=12) (actual rows= loops=)

50. 0.000 0.000 ↓ 0.0

Seq Scan on tvei_tipo_veiculo tveitipoveiculo (cost=0.00..1.16 rows=16 width=12) (actual rows= loops=)

51. 0.000 0.000 ↓ 0.0

Hash (cost=0.02..0.02 rows=1 width=560) (actual rows= loops=)