explain.depesz.com

PostgreSQL's explain analyze made readable

Result: Rjpw

Settings
# exclusive inclusive rows x rows loops node
1. 11.275 11.275 ↑ 275,028,572.5 23 1

CTE Scan on apenas_execucoes_validas_para_busca_status (cost=276,525,309,269.56..282,850,966,437.56 rows=6,325,657,168 width=1,211) (actual time=11.245..11.275 rows=23 loops=1)

  • Output: apenas_execucoes_validas_para_busca_status.id, apenas_execucoes_validas_para_busca_status.class, apenas_execucoes_validas_para_busca_status.id_1, apenas_execucoes_validas_para_busca_status.version, apenas_execucoes_validas_para_busca_status.conteudo, apenas_execucoes_validas_para_busca_status.descricao, apenas_execucoes_validas_para_busca_status.execucao_id, apenas_execucoes_validas_para_busca_status.status, apenas_execucoes_validas_para_busca_status.date_created, apenas_execucoes_validas_para_busca_status.permite_encadeamento, apenas_execucoes_validas_para_busca_status.data_disparo, apenas_execucoes_validas_para_busca_status.detalhe_status, apenas_execucoes_validas_para_busca_status.progresso, apenas_execucoes_validas_para_busca_status.interromper_fluxo_pai, apenas_execucoes_validas_para_busca_status.expor_para_usuario
2.          

CTE execucoes_da_arvore_toda_com_tentativas

3. 0.006 0.031 ↑ 991.0 1 1

Recursive Union (cost=86.00..12,106.91 rows=991 width=116) (actual time=0.017..0.031 rows=1 loops=1)

4. 0.012 0.012 ↑ 1.0 1 1

Index Scan using execucao_pkey on public.execucao execucao_raiz (cost=86.00..90.50 rows=1 width=116) (actual time=0.011..0.012 rows=1 loops=1)

  • Output: execucao_raiz.id, execucao_raiz.version, execucao_raiz.date_created, execucao_raiz.id_usuario, execucao_raiz.manual, execucao_raiz.execucao_de_fluxo_id, execucao_raiz.status, execucao_raiz.class, execucao_raiz.executavel_id, execucao_raiz.detalhe_status, execucao_raiz.concluida, execucao_raiz.agendamento_id, execucao_raiz.estrategia_contingencia_id
  • Index Cond: (execucao_raiz.id = 55258568)
5. 0.001 0.013 ↓ 0.0 0 1

Nested Loop (cost=86.00..1,102.54 rows=99 width=116) (actual time=0.013..0.013 rows=0 loops=1)

  • Output: execucao_filha.id, execucao_filha.version, execucao_filha.date_created, execucao_filha.id_usuario, execucao_filha.manual, execucao_filha.execucao_de_fluxo_id, execucao_filha.status, execucao_filha.class, execucao_filha.executavel_id, execucao_filha.detalhe_status, execucao_filha.concluida, execucao_filha.agendamento_id, execucao_filha.estrategia_contingencia_id
6. 0.001 0.001 ↑ 10.0 1 1

WorkTable Scan on execucoes_da_arvore_toda_com_tentativas execucao_pai (cost=0.00..10.00 rows=10 width=8) (actual time=0.001..0.001 rows=1 loops=1)

  • Output: execucao_pai.id, execucao_pai.version, execucao_pai.date_created, execucao_pai.id_usuario, execucao_pai.manual, execucao_pai.execucao_de_fluxo_id, execucao_pai.status, execucao_pai.class, execucao_pai.executavel_id, execucao_pai.detalhe_status, execucao_pai.concluida, execucao_pai.agendamento_id, execucao_pai.estrategia_contingencia_id
7. 0.011 0.011 ↓ 0.0 0 1

Index Scan using idx_execucao_execucao_de_fluxo_id_idx on public.execucao execucao_filha (cost=86.00..104.25 rows=10 width=116) (actual time=0.011..0.011 rows=0 loops=1)

  • Output: execucao_filha.id, execucao_filha.version, execucao_filha.date_created, execucao_filha.id_usuario, execucao_filha.manual, execucao_filha.execucao_de_fluxo_id, execucao_filha.status, execucao_filha.class, execucao_filha.executavel_id, execucao_filha.detalhe_status, execucao_filha.concluida, execucao_filha.agendamento_id, execucao_filha.estrategia_contingencia_id
  • Index Cond: (execucao_filha.execucao_de_fluxo_id = execucao_pai.id)
8.          

CTE execucoes_da_arvore_toda

9. 0.023 0.532 ↑ 991.0 1 1

GroupAggregate (cost=104,109.92..112,533.42 rows=991 width=58) (actual time=0.532..0.532 rows=1 loops=1)

  • Output: string_agg((execucao.id)::text, ','::text), max(execucao.id), ((count(DISTINCT execucao.status) > 1) AND (count(DISTINCT execucao.execucao_de_fluxo_id) = 1)), ((count(DISTINCT execucao.id) > 1) AND (count(DISTINCT execucao.execucao_de_fluxo_id) = 1)), execucao.executavel_id, execucao_fluxo.executavel_id
  • Group Key: execucao.executavel_id, execucao_fluxo.executavel_id
10. 0.009 0.509 ↑ 991.0 1 1

Sort (cost=104,109.92..104,605.42 rows=991 width=548) (actual time=0.509..0.509 rows=1 loops=1)

  • Output: execucao.executavel_id, execucao_fluxo.executavel_id, execucao.id, execucao.status, execucao.execucao_de_fluxo_id
  • Sort Key: execucao.executavel_id DESC, execucao_fluxo.executavel_id
  • Sort Method: quicksort Memory: 25kB
11. 0.014 0.500 ↑ 991.0 1 1

Hash Join (cost=1,997.00..94,246.75 rows=991 width=548) (actual time=0.483..0.500 rows=1 loops=1)

  • Output: execucao.executavel_id, execucao_fluxo.executavel_id, execucao.id, execucao.status, execucao.execucao_de_fluxo_id
  • Hash Cond: (execucao_fluxo.executavel_id = executavel_fluxo.id)
12. 0.001 0.042 ↑ 991.0 1 1

Nested Loop (cost=86.00..91,097.00 rows=991 width=548) (actual time=0.026..0.042 rows=1 loops=1)

  • Output: execucao.id, execucao.status, execucao.execucao_de_fluxo_id, execucao.executavel_id, execucao_fluxo.executavel_id
13. 0.033 0.033 ↑ 991.0 1 1

CTE Scan on execucoes_da_arvore_toda_com_tentativas execucao (cost=0.00..991.00 rows=991 width=540) (actual time=0.017..0.033 rows=1 loops=1)

  • Output: execucao.id, execucao.version, execucao.date_created, execucao.id_usuario, execucao.manual, execucao.execucao_de_fluxo_id, execucao.status, execucao.class, execucao.executavel_id, execucao.detalhe_status, execucao.concluida, execucao.agendamento_id, execucao.estrategia_contingencia_id
14. 0.008 0.008 ↑ 1.0 1 1

Index Scan using execucao_pkey on public.execucao execucao_fluxo (cost=86.00..90.42 rows=1 width=16) (actual time=0.007..0.008 rows=1 loops=1)

  • Output: execucao_fluxo.id, execucao_fluxo.version, execucao_fluxo.date_created, execucao_fluxo.id_usuario, execucao_fluxo.manual, execucao_fluxo.execucao_de_fluxo_id, execucao_fluxo.status, execucao_fluxo.class, execucao_fluxo.executavel_id, execucao_fluxo.detalhe_status, execucao_fluxo.concluida, execucao_fluxo.agendamento_id, execucao_fluxo.estrategia_contingencia_id
  • Index Cond: (execucao_fluxo.id = execucao.execucao_de_fluxo_id)
15. 0.198 0.444 ↓ 1.0 1,250 1

Hash (cost=662.00..662.00 rows=1,249 width=8) (actual time=0.444..0.444 rows=1,250 loops=1)

  • Output: executavel_fluxo.id
  • Buckets: 2048 Batches: 1 Memory Usage: 65kB
16. 0.246 0.246 ↓ 1.0 1,250 1

Seq Scan on public.executavel executavel_fluxo (cost=0.00..662.00 rows=1,249 width=8) (actual time=0.007..0.246 rows=1,250 loops=1)

  • Output: executavel_fluxo.id
17.          

CTE apenas_execucoes_validas_para_busca_status

18. 0.016 11.261 ↑ 275,028,572.5 23 1

Unique (cost=225,919,927,285.23..276,525,184,629.23 rows=6,325,657,168 width=1,211) (actual time=11.242..11.261 rows=23 loops=1)

  • Output: execucao_valida_para_busca_status.id, execucao_valida_para_busca_status.class, evento.id, evento.version, evento.conteudo, evento.descricao, evento.execucao_id, evento.status, evento.date_created, evento.permite_encadeamento, evento.data_disparo, evento.detalhe_status, evento.progresso, evento.interromper_fluxo_pai, evento.expor_para_usuario
19. 0.047 11.245 ↑ 275,028,572.5 23 1

Sort (cost=225,919,927,285.23..229,082,755,869.23 rows=6,325,657,168 width=1,211) (actual time=11.242..11.245 rows=23 loops=1)

  • Output: execucao_valida_para_busca_status.id, execucao_valida_para_busca_status.class, evento.id, evento.version, evento.conteudo, evento.descricao, evento.execucao_id, evento.status, evento.date_created, evento.permite_encadeamento, evento.data_disparo, evento.detalhe_status, evento.progresso, evento.interromper_fluxo_pai, evento.expor_para_usuario
  • Sort Key: execucao_valida_para_busca_status.id, execucao_valida_para_busca_status.class, evento.id, evento.version, evento.conteudo, evento.descricao, evento.execucao_id, evento.status, evento.date_created, evento.permite_encadeamento, evento.data_disparo, evento.detalhe_status, evento.progresso, evento.interromper_fluxo_pai, evento.expor_para_usuario
  • Sort Method: quicksort Memory: 33kB
20. 0.002 11.198 ↑ 275,028,572.5 23 1

Append (cost=199.00..14,220,605,221.06 rows=6,325,657,168 width=1,211) (actual time=0.549..11.198 rows=23 loops=1)

21. 0.009 0.580 ↑ 346.4 23 1

Nested Loop (cost=199.00..1,432,732.38 rows=7,968 width=293) (actual time=0.549..0.580 rows=23 loops=1)

  • Output: execucao_valida_para_busca_status.id, execucao_valida_para_busca_status.class, evento.id, evento.version, evento.conteudo, evento.descricao, evento.execucao_id, evento.status, evento.date_created, evento.permite_encadeamento, evento.data_disparo, evento.detalhe_status, evento.progresso, evento.interromper_fluxo_pai, evento.expor_para_usuario
22. 0.001 0.539 ↑ 619.0 1 1

Nested Loop (cost=86.00..57,291.50 rows=619 width=54) (actual time=0.538..0.539 rows=1 loops=1)

  • Output: execucao_valida_para_busca_status.id, execucao_valida_para_busca_status.class, execucoes_da_arvore_toda.ultima_execucao_id
23. 0.535 0.535 ↑ 619.0 1 1

CTE Scan on execucoes_da_arvore_toda (cost=0.00..991.00 rows=619 width=8) (actual time=0.534..0.535 rows=1 loops=1)

  • Output: execucoes_da_arvore_toda.execucoes_id, execucoes_da_arvore_toda.ultima_execucao_id, execucoes_da_arvore_toda.tem_status_diferentes, execucoes_da_arvore_toda.multi_execucao
  • Filter: ((execucoes_da_arvore_toda.multi_execucao IS FALSE) OR ((execucoes_da_arvore_toda.multi_execucao IS TRUE) AND (execucoes_da_arvore_toda.tem_status_diferentes IS FALSE)))
24. 0.003 0.003 ↑ 1.0 1 1

Index Scan using execucao_pkey on public.execucao execucao_valida_para_busca_status (cost=86.00..90.45 rows=1 width=46) (actual time=0.003..0.003 rows=1 loops=1)

  • Output: execucao_valida_para_busca_status.id, execucao_valida_para_busca_status.version, execucao_valida_para_busca_status.date_created, execucao_valida_para_busca_status.id_usuario, execucao_valida_para_busca_status.manual, execucao_valida_para_busca_status.execucao_de_fluxo_id, execucao_valida_para_busca_status.status, execucao_valida_para_busca_status.class, execucao_valida_para_busca_status.executavel_id, execucao_valida_para_busca_status.detalhe_status, execucao_valida_para_busca_status.concluida, execucao_valida_para_busca_status.agendamento_id, execucao_valida_para_busca_status.estrategia_contingencia_id
  • Index Cond: (execucao_valida_para_busca_status.id = execucoes_da_arvore_toda.ultima_execucao_id)
25. 0.032 0.032 ↑ 44.5 23 1

Index Scan using idx_evento_execucao_id_idx on public.evento (cost=113.00..1,710.54 rows=1,023 width=247) (actual time=0.010..0.032 rows=23 loops=1)

  • Output: evento.id, evento.version, evento.conteudo, evento.descricao, evento.execucao_id, evento.status, evento.date_created, evento.permite_encadeamento, evento.data_disparo, evento.detalhe_status, evento.progresso, evento.interromper_fluxo_pai, evento.expor_para_usuario
  • Index Cond: (evento.execucao_id = execucoes_da_arvore_toda.ultima_execucao_id)
26. 5.824 10.616 ↓ 0.0 0 1

Hash Join (cost=1,571,732,461.42..11,056,343,904.68 rows=6,325,649,200 width=293) (actual time=10.616..10.616 rows=0 loops=1)

  • Output: execucao_valida_para_busca_status_1.id, execucao_valida_para_busca_status_1.class, evento_1.id, evento_1.version, evento_1.conteudo, evento_1.descricao, evento_1.execucao_id, evento_1.status, evento_1.date_created, evento_1.permite_encadeamento, evento_1.data_disparo, evento_1.detalhe_status, evento_1.progresso, evento_1.interromper_fluxo_pai, evento_1.expor_para_usuario
  • Hash Cond: (evento_1.execucao_id = execucao_valida_para_busca_status_1.id)
27. 4.739 4.769 ↑ 51,013,300.0 1 1

Gather (cost=1,000.00..22,838,700.26 rows=51,013,300 width=247) (actual time=0.390..4.769 rows=1 loops=1)

  • Output: evento_1.id, evento_1.version, evento_1.conteudo, evento_1.descricao, evento_1.execucao_id, evento_1.status, evento_1.date_created, evento_1.permite_encadeamento, evento_1.data_disparo, evento_1.detalhe_status, evento_1.progresso, evento_1.interromper_fluxo_pai, evento_1.expor_para_usuario
  • Workers Planned: 1
  • Workers Launched: 1
28. 0.030 0.030 ↑ 30,007,824.0 1 2

Parallel Seq Scan on public.evento evento_1 (cost=0.00..17,736,370.26 rows=30,007,824 width=247) (actual time=0.030..0.030 rows=1 loops=2)

  • Output: evento_1.id, evento_1.version, evento_1.conteudo, evento_1.descricao, evento_1.execucao_id, evento_1.status, evento_1.date_created, evento_1.permite_encadeamento, evento_1.data_disparo, evento_1.detalhe_status, evento_1.progresso, evento_1.interromper_fluxo_pai, evento_1.expor_para_usuario
  • Worker 0: actual time=0.056..0.056 rows=1 loops=1
29. 0.000 0.023 ↓ 0.0 0 1

Hash (cost=1,073,845,658.42..1,073,845,658.42 rows=491,407,288 width=46) (actual time=0.023..0.023 rows=0 loops=1)

  • Output: execucao_valida_para_busca_status_1.id, execucao_valida_para_busca_status_1.class
  • Buckets: 2097152 Batches: 512 Memory Usage: 16390kB
30. 0.001 0.023 ↓ 0.0 0 1

Merge Join (cost=89,012,401.42..1,073,845,658.42 rows=491,407,288 width=46) (actual time=0.023..0.023 rows=0 loops=1)

  • Output: execucao_valida_para_busca_status_1.id, execucao_valida_para_busca_status_1.class
  • Merge Cond: (((unnest(string_to_array(execucoes_da_arvore_toda_1.execucoes_id, ','::text)))::numeric) = ((execucao_valida_para_busca_status_1.id)::numeric))
31. 0.018 0.022 ↓ 0.0 0 1

Sort (cost=382,056.70..394,456.70 rows=24,800 width=32) (actual time=0.022..0.022 rows=0 loops=1)

  • Output: ((unnest(string_to_array(execucoes_da_arvore_toda_1.execucoes_id, ','::text)))::numeric)
  • Sort Key: ((unnest(string_to_array(execucoes_da_arvore_toda_1.execucoes_id, ','::text)))::numeric)
  • Sort Method: quicksort Memory: 25kB
32. 0.004 0.004 ↓ 0.0 0 1

CTE Scan on execucoes_da_arvore_toda execucoes_da_arvore_toda_1 (cost=0.00..7,625.00 rows=24,800 width=32) (actual time=0.004..0.004 rows=0 loops=1)

  • Output: (unnest(string_to_array(execucoes_da_arvore_toda_1.execucoes_id, ','::text)))::numeric
  • Filter: ((execucoes_da_arvore_toda_1.multi_execucao IS TRUE) AND (execucoes_da_arvore_toda_1.tem_status_diferentes IS TRUE))
  • Rows Removed by Filter: 1
33. 0.000 0.000 ↓ 0.0 0

Materialize (cost=88,630,344.72..92,593,306.72 rows=3,962,962 width=46) (never executed)

  • Output: execucao_valida_para_busca_status_1.id, execucao_valida_para_busca_status_1.class, ((execucao_valida_para_busca_status_1.id)::numeric)
34. 0.000 0.000 ↓ 0.0 0

Sort (cost=88,630,344.72..90,611,825.72 rows=3,962,962 width=46) (never executed)

  • Output: execucao_valida_para_busca_status_1.id, execucao_valida_para_busca_status_1.class, ((execucao_valida_para_busca_status_1.id)::numeric)
  • Sort Key: ((execucao_valida_para_busca_status_1.id)::numeric)
35. 0.000 0.000 ↓ 0.0 0

Gather (cost=1,000.00..1,665,065.26 rows=3,962,962 width=46) (never executed)

  • Output: execucao_valida_para_busca_status_1.id, execucao_valida_para_busca_status_1.class, execucao_valida_para_busca_status_1.id
  • Workers Planned: 1
  • Workers Launched: 0
36. 0.000 0.000 ↓ 0.0 0

Parallel Seq Scan on public.execucao execucao_valida_para_busca_status_1 (cost=0.00..1,267,769.06 rows=2,331,154 width=46) (never executed)

  • Output: execucao_valida_para_busca_status_1.id, execucao_valida_para_busca_status_1.class
Planning time : 1.393 ms
Execution time : 16.067 ms