explain.depesz.com

PostgreSQL's explain analyze made readable

Result: ofma

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

Hash Left Join (cost=21,835.40..863,754.75 rows=104 width=657) (actual rows= loops=)

  • Hash Cond: (veicveiculo.veic_oras_codigo = viag.vvei_veic_oras_codigo)
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. 0.000 0.000 ↓ 0.0

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

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

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

35. 0.000 0.000 ↓ 0.0

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

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

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

37. 0.000 0.000 ↓ 0.0

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

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

Seq Scan on term_terminal termterminal (cost=0.00..101,785.32 rows=1,639,432 width=16) (actual rows= loops=)

39. 0.000 0.000 ↓ 0.0

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

40. 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)
41. 0.000 0.000 ↓ 0.0

Index Scan using upos_ultima_posicao_term_data_comp on upos_ultima_posicao (cost=0.56..0.91 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)
42. 0.000 0.000 ↓ 0.0

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

43. 0.000 0.000 ↓ 0.0

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

44. 0.000 0.000 ↓ 0.0

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

45. 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)
46. 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)
47. 0.000 0.000 ↓ 0.0

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

48. 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=)

49. 0.000 0.000 ↓ 0.0

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

50. 0.000 0.000 ↓ 0.0

CTE Scan on viag (cost=0.00..0.02 rows=1 width=560) (actual rows= loops=)

51.          

SubPlan (forHash Left Join)

52. 0.000 0.000 ↓ 0.0

Aggregate (cost=881.43..881.44 rows=1 width=32) (actual rows= loops=)

53. 0.000 0.000 ↓ 0.0

Nested Loop Semi Join (cost=1.56..881.42 rows=1 width=4) (actual rows= loops=)

  • Join Filter: ((rpos_recebimento_posicao_01.rpos_data_cadastro >= viag_viagem_1.viag_data_inicio) AND (rpos_recebimento_posicao_01.rpos_data_cadastro <= COALESCE((viag_viagem_1.viag_data_fim)::timestamp with time zone, now())))
54. 0.000 0.000 ↓ 0.0

Index Scan using idx_rpos_recebimento_posicao_beg08_01 on rpos_recebimento_posicao_01 (cost=0.56..2.79 rows=1 width=12) (actual rows= loops=)

  • Index Cond: ((rpos_vtec_codigo = vtecversaotecnologia.vtec_codigo) AND ((rpos_term_numero_terminal)::text = (termterminal.term_numero_terminal)::text) AND (rpos_data_cadastro >= '2019-02-01 00:00:00'::timestamp without time zone) AND (rpos_data_cadastro <= '2019-02-01 23:59:59'::timestamp without time zone))
55. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.99..878.57 rows=3 width=16) (actual rows= loops=)

56. 0.000 0.000 ↓ 0.0

Index Only Scan using vvei_viagem_veiculo_idx_70608 on vvei_viagem_veiculo vvei_viagem_veiculo_1 (cost=0.43..9.21 rows=313 width=4) (actual rows= loops=)

  • Index Cond: (vvei_veic_oras_codigo = veicveiculo.veic_oras_codigo)
57. 0.000 0.000 ↓ 0.0

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

  • Index Cond: (viag_codigo = vvei_viagem_veiculo_1.vvei_viag_codigo)
  • Filter: ((viag_data_inicio IS NOT NULL) AND ((viag_data_fim IS NULL) OR (viag_data_fim >= '2019-02-01 00:00:00'::timestamp without time zone)))
58. 0.000 0.000 ↓ 0.0

Aggregate (cost=881.43..881.44 rows=1 width=32) (actual rows= loops=)

59. 0.000 0.000 ↓ 0.0

Nested Loop Anti Join (cost=1.56..881.42 rows=1 width=4) (actual rows= loops=)

  • Join Filter: ((rpos_recebimento_posicao_01_1.rpos_data_cadastro >= viag_viagem_2.viag_data_inicio) AND (rpos_recebimento_posicao_01_1.rpos_data_cadastro <= COALESCE((viag_viagem_2.viag_data_fim)::timestamp with time zone, now())))
60. 0.000 0.000 ↓ 0.0

Index Scan using idx_rpos_recebimento_posicao_beg08_01 on rpos_recebimento_posicao_01 rpos_recebimento_posicao_01_1 (cost=0.56..2.79 rows=1 width=12) (actual rows= loops=)

  • Index Cond: ((rpos_vtec_codigo = vtecversaotecnologia.vtec_codigo) AND ((rpos_term_numero_terminal)::text = (termterminal.term_numero_terminal)::text) AND (rpos_data_cadastro >= '2019-02-01 00:00:00'::timestamp without time zone) AND (rpos_data_cadastro <= '2019-02-01 23:59:59'::timestamp without time zone))
61. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.99..878.57 rows=3 width=16) (actual rows= loops=)

62. 0.000 0.000 ↓ 0.0

Index Only Scan using vvei_viagem_veiculo_idx_70608 on vvei_viagem_veiculo vvei_viagem_veiculo_2 (cost=0.43..9.21 rows=313 width=4) (actual rows= loops=)

  • Index Cond: (vvei_veic_oras_codigo = veicveiculo.veic_oras_codigo)
63. 0.000 0.000 ↓ 0.0

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

  • Index Cond: (viag_codigo = vvei_viagem_veiculo_2.vvei_viag_codigo)