explain.depesz.com

PostgreSQL's explain analyze made readable

Result: NCBLc

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

Limit (cost=0..0 rows=0 width=0) (actual rows=20 loops=1)

2. 0.000 0.000 ↓ 0.0 80 1

Result (cost=0..0 rows=0 width=0) (actual rows=80 loops=1)

3. 0.000 0.000 ↓ 0.0 80 1

Sort (cost=0..0 rows=0 width=0) (actual rows=80 loops=1)

  • Sort Key: checklistr0_.dat_realizacao_checklist DESC, checklistr0_.dat_criacao DESC, obra3_.nom_obra, checklistr0_.nom_checklist
  • Sort Method: top-N heapsort Memory: 112kB
4. 0.000 0.000 ↓ 0.0 246 1

Nested Loop (cost=0..0 rows=0 width=0) (actual rows=246 loops=1)

5. 0.000 0.000 ↓ 0.0 246 1

Nested Loop (cost=0..0 rows=0 width=0) (actual rows=246 loops=1)

6. 0.000 0.000 ↓ 0.0 246 1

Nested Loop (cost=0..0 rows=0 width=0) (actual rows=246 loops=1)

7. 0.000 0.000 ↓ 0.0 246 1

Hash Join (cost=0..0 rows=0 width=0) (actual rows=246 loops=1)

  • Filter: ((((obra3_.id)::text = 'TECLOGICA_6213'::text) OR ((obra20_.id)::text = 'TECLOGICA_6213'::text)) AND (obra3_.flg_lib_todos_usuar OR (SubPlan 5) OR ((categoriac11_.val_dominio_valor)::text = '3'::text)))
8. 0.000 0.000 ↓ 0.0 97,460 1

Nested Loop (cost=0..0 rows=0 width=0) (actual rows=97,460 loops=1)

9. 0.000 0.000 ↓ 0.0 97,460 1

Nested Loop (cost=0..0 rows=0 width=0) (actual rows=97,460 loops=1)

10. 0.000 0.000 ↓ 0.0 97,460 1

Hash Join (cost=0..0 rows=0 width=0) (actual rows=97,460 loops=1)

11. 0.000 0.000 ↓ 0.0 97,460 1

Nested Loop (cost=0..0 rows=0 width=0) (actual rows=97,460 loops=1)

12. 0.000 0.000 ↓ 0.0 97,460 1

Nested Loop (cost=0..0 rows=0 width=0) (actual rows=97,460 loops=1)

13. 0.000 0.000 ↓ 0.0 97,460 1

Nested Loop (cost=0..0 rows=0 width=0) (actual rows=97,460 loops=1)

14. 0.000 0.000 ↓ 0.0 97,460 1

Hash Join (cost=0..0 rows=0 width=0) (actual rows=97,460 loops=1)

15. 0.000 0.000 ↓ 0.0 97,460 1

Nested Loop (cost=0..0 rows=0 width=0) (actual rows=97,460 loops=1)

16. 0.000 0.000 ↓ 0.0 97,460 1

Nested Loop (cost=0..0 rows=0 width=0) (actual rows=97,460 loops=1)

17. 0.000 0.000 ↓ 0.0 1 1

Index Only Scan using empresa_pk on empresa empresa5_ (cost=0..0 rows=0 width=0) (actual rows=1 loops=1)

  • Index Cond: (empresa5_.id = 'RKKIHSQDCNHI'::text)
  • Heap Fetches: 1
18. 0.000 0.000 ↓ 0.0 97,460 1

Nested Loop (cost=0..0 rows=0 width=0) (actual rows=97,460 loops=1)

19. 0.000 0.000 ↓ 0.0 97,460 1

Gather (cost=0..0 rows=0 width=0) (actual rows=97,460 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
20. 0.000 0.000 ↓ 0.0 32,487 3 / 3

Nested Loop (cost=0..0 rows=0 width=0) (actual rows=32,487 loops=3)

21. 0.000 0.000 ↓ 0.0 32,487 3 / 3

Nested Loop (cost=0..0 rows=0 width=0) (actual rows=32,487 loops=3)

22. 0.000 0.000 ↓ 0.0 32,487 3 / 3

Hash Join (cost=0..0 rows=0 width=0) (actual rows=32,487 loops=3)

23. 0.000 0.000 ↓ 0.0 135,894 3 / 3

Seq Scan on checklist_realizado checklistr0_ (cost=0..0 rows=0 width=0) (actual rows=135,894 loops=3)

  • Filter: ((checklistr0_.dat_inativacao IS NULL) AND (upper((checklistr0_.nom_checklist)::text) ~~ '%FVS%'::text))
24. 0.000 0.000 ↓ 0.0 430 3 / 3

Hash (cost=0..0 rows=0 width=0) (actual rows=430 loops=3)

25. 0.000 0.000 ↓ 0.0 430 3 / 3

Bitmap Heap Scan on checklist checklist4_ (cost=0..0 rows=0 width=0) (actual rows=430 loops=3)

  • Heap Blocks: exact=258
26. 0.000 0.000 ↓ 0.0 430 3 / 3

Bitmap Index Scan on checklist_empresa_idx (cost=0..0 rows=0 width=0) (actual rows=430 loops=3)

  • Index Cond: ((checklist4_.id_empresa)::text = 'RKKIHSQDCNHI'::text)
27. 0.000 0.000 ↓ 0.0 1 97,460 / 3

Index Scan using plano_qualidade_pk on plano_qualidade planoquali1_ (cost=0..0 rows=0 width=0) (actual rows=1 loops=97,460)

  • Index Cond: ((planoquali1_.id)::text = (checklistr0_.id_plano_qualidade)::text)
28. 0.000 0.000 ↓ 0.0 1 97,460 / 3

Index Scan using obra_pk on obra obra3_ (cost=0..0 rows=0 width=0) (actual rows=1 loops=97,460)

  • Index Cond: ((obra3_.id)::text = (planoquali1_.id_obra)::text)
29. 0.000 0.000 ↓ 0.0 1 97,460

Index Scan using tipo_checklist_pk on tipo_checklist tipocheckl6_ (cost=0..0 rows=0 width=0) (actual rows=1 loops=97,460)

  • Index Cond: ((tipocheckl6_.id)::text = (checklistr0_.id_tipo_checklist)::text)
  • Filter: ((NOT tipocheckl6_.flg_acesso_restrito) OR (alternatives: SubPlan 6 or hashed SubPlan 7))
30.          

SubPlan (for Index Scan)

31. 0.000 0.000 ↓ 0.0 0 0

Nested Loop (cost=0..0 rows=0 width=0) (never executed)

32. 0.000 0.000 ↓ 0.0 0 0

Index Scan using usuario_id_conta_uppercase_idx on usuario usuario30_ (cost=0..0 rows=0 width=0) (never executed)

  • Index Cond: (upper((usuario30_.id_conta_usuario)::text) = 'ROBERTM@LYX'::text)
33. 0.000 0.000 ↓ 0.0 0 0

Nested Loop (cost=0..0 rows=0 width=0) (never executed)

34. 0.000 0.000 ↓ 0.0 0 0

Nested Loop (cost=0..0 rows=0 width=0) (never executed)

35. 0.000 0.000 ↓ 0.0 0 0

Index Scan using perm_tipo_check_grupo_usu_id_tipo_checklist_idx on permissao_tipo_checklist_grupo_usuario permissaot27_ (cost=0..0 rows=0 width=0) (never executed)

  • Index Cond: ((permissaot27_.id_tipo_checklist)::text = (tipocheckl6_.id)::text)
  • Filter: (permissaot27_.dat_inativacao IS NULL)
36. 0.000 0.000 ↓ 0.0 0 0

Index Only Scan using grupo_usuario_pk on grupo_usuario grupousuar28_ (cost=0..0 rows=0 width=0) (never executed)

  • Index Cond: (grupousuar28_.id = (permissaot27_.id_grupo_usuario)::text)
37. 0.000 0.000 ↓ 0.0 0 0

Bitmap Heap Scan on liberacao_grupo_usuario liberacoes29_ (cost=0..0 rows=0 width=0) (never executed)

  • Filter: ((liberacoes29_.dat_inativacao IS NULL) AND (liberacoes29_.dat_inicio_liberacao <= now()) AND ((liberacoes29_.dat_fim_liberacao IS NULL) OR (liberacoes29_.dat_fim_liberacao >= CURRENT_DATE)))
38. 0.000 0.000 ↓ 0.0 0 0

BitmapAnd (cost=0..0 rows=0 width=0) (never executed)

39. 0.000 0.000 ↓ 0.0 0 0

Bitmap Index Scan on liberacao_grupo_usuario_id_usuario_idx (cost=0..0 rows=0 width=0) (never executed)

  • Index Cond: ((liberacoes29_.id_usuario)::text = (usuario30_.id)::text)
40. 0.000 0.000 ↓ 0.0 0 0

Bitmap Index Scan on liberacao_grupo_usuario_id_grupo_usuario_idx (cost=0..0 rows=0 width=0) (never executed)

  • Index Cond: ((liberacoes29_.id_grupo_usuario)::text = (grupousuar28_.id)::text)
41. 0.000 0.000 ↓ 0.0 0 0

Nested Loop (cost=0..0 rows=0 width=0) (never executed)

42. 0.000 0.000 ↓ 0.0 0 0

Nested Loop (cost=0..0 rows=0 width=0) (never executed)

43. 0.000 0.000 ↓ 0.0 0 0

Nested Loop (cost=0..0 rows=0 width=0) (never executed)

44. 0.000 0.000 ↓ 0.0 0 0

Index Scan using usuario_id_conta_uppercase_idx on usuario usuario30__1 (cost=0..0 rows=0 width=0) (never executed)

  • Index Cond: (upper((usuario30__1.id_conta_usuario)::text) = 'ROBERTM@LYX'::text)
45. 0.000 0.000 ↓ 0.0 0 0

Bitmap Heap Scan on liberacao_grupo_usuario liberacoes29__1 (cost=0..0 rows=0 width=0) (never executed)

  • Filter: ((liberacoes29__1.dat_inativacao IS NULL) AND (liberacoes29__1.dat_inicio_liberacao <= now()) AND ((liberacoes29__1.dat_fim_liberacao IS NULL) OR (liberacoes29__1.dat_fim_liberacao >= CURRENT_DATE)))
46. 0.000 0.000 ↓ 0.0 0 0

Bitmap Index Scan on liberacao_grupo_usuario_id_usuario_idx (cost=0..0 rows=0 width=0) (never executed)

  • Index Cond: ((liberacoes29__1.id_usuario)::text = (usuario30__1.id)::text)
47. 0.000 0.000 ↓ 0.0 0 0

Index Scan using perm_tipo_check_grupo_usu_id_grupo_usuario_idx on permissao_tipo_checklist_grupo_usuario permissaot27__1 (cost=0..0 rows=0 width=0) (never executed)

  • Index Cond: ((permissaot27__1.id_grupo_usuario)::text = (liberacoes29__1.id_grupo_usuario)::text)
  • Filter: (permissaot27__1.dat_inativacao IS NULL)
48. 0.000 0.000 ↓ 0.0 0 0

Index Only Scan using grupo_usuario_pk on grupo_usuario grupousuar28__1 (cost=0..0 rows=0 width=0) (never executed)

  • Index Cond: (grupousuar28__1.id = (liberacoes29__1.id_grupo_usuario)::text)
49. 0.000 0.000 ↓ 0.0 1 97,460

Index Scan using dominio_valor_pk on dominio_valor categoriac11_ (cost=0..0 rows=0 width=0) (actual rows=1 loops=97,460)

  • Index Cond: ((categoriac11_.id)::text = (tipocheckl6_.id_dominio_valor_categoria_checklist)::text)
50. 0.000 0.000 ↓ 0.0 490 1

Hash (cost=0..0 rows=0 width=0) (actual rows=490 loops=1)

51. 0.000 0.000 ↓ 0.0 490 1

Hash Join (cost=0..0 rows=0 width=0) (actual rows=490 loops=1)

52. 0.000 0.000 ↓ 0.0 3,973 1

Seq Scan on texto_i18n texto8_ (cost=0..0 rows=0 width=0) (actual rows=3,973 loops=1)

  • Filter: (texto8_.dat_inativacao IS NULL)
53. 0.000 0.000 ↓ 0.0 490 1

Hash (cost=0..0 rows=0 width=0) (actual rows=490 loops=1)

54. 0.000 0.000 ↓ 0.0 490 1

Seq Scan on dominio_valor statuschec7_ (cost=0..0 rows=0 width=0) (actual rows=490 loops=1)

55. 0.000 0.000 ↓ 0.0 1 97,460

Index Scan using traducao_texto_i18n_texto_idx on traducao_texto_i18n traducoes9_ (cost=0..0 rows=0 width=0) (actual rows=1 loops=97,460)

  • Index Cond: ((traducoes9_.id_texto_i18n)::text = (texto8_.id)::text)
  • Filter: ((traducoes9_.dat_inativacao IS NULL) AND ((traducoes9_.id_lingua_i18n)::text = 'pt_BR'::text))
56. 0.000 0.000 ↓ 0.0 1 97,460

Index Scan using colaborador_pk on colaborador colaborado10_ (cost=0..0 rows=0 width=0) (actual rows=1 loops=97,460)

  • Index Cond: ((colaborado10_.id)::text = (checklistr0_.id_colaborador)::text)
57. 0.000 0.000 ↓ 0.0 0 97,460

Index Scan using dominio_valor_pk on dominio_valor tipoatendi14_ (cost=0..0 rows=0 width=0) (actual rows=0 loops=97,460)

  • Index Cond: ((tipoatendi14_.id)::text = (checklistr0_.id_dominio_valor_tipo_atendimento_avaliado)::text)
58. 0.000 0.000 ↓ 0.0 3,973 1

Hash (cost=0..0 rows=0 width=0) (actual rows=3,973 loops=1)

59. 0.000 0.000 ↓ 0.0 3,973 1

Hash Join (cost=0..0 rows=0 width=0) (actual rows=3,973 loops=1)

60. 0.000 0.000 ↓ 0.0 3,968 1

Seq Scan on traducao_texto_i18n traducoes13_ (cost=0..0 rows=0 width=0) (actual rows=3,968 loops=1)

  • Filter: ((traducoes13_.dat_inativacao IS NULL) AND ((traducoes13_.id_lingua_i18n)::text = 'pt_BR'::text))
61. 0.000 0.000 ↓ 0.0 3,973 1

Hash (cost=0..0 rows=0 width=0) (actual rows=3,973 loops=1)

62. 0.000 0.000 ↓ 0.0 3,973 1

Seq Scan on texto_i18n texto12_ (cost=0..0 rows=0 width=0) (actual rows=3,973 loops=1)

  • Filter: (texto12_.dat_inativacao IS NULL)
63. 0.000 0.000 ↓ 0.0 0 97,460

Index Scan using solicitacao_atendimento_pk on solicitacao_atendimento solicitaca18_ (cost=0..0 rows=0 width=0) (actual rows=0 loops=97,460)

  • Index Cond: ((solicitaca18_.id)::text = (checklistr0_.id_solicitacao_atendimento)::text)
64. 0.000 0.000 ↓ 0.0 0 97,460

Index Scan using plano_assistencia_tecnica_pk on plano_assistencia_tecnica planoassis19_ (cost=0..0 rows=0 width=0) (actual rows=0 loops=97,460)

  • Index Cond: ((planoassis19_.id)::text = (solicitaca18_.id_plano_assistencia_tecnica)::text)
65. 0.000 0.000 ↓ 0.0 5,679 1

Hash (cost=0..0 rows=0 width=0) (actual rows=5,679 loops=1)

66. 0.000 0.000 ↓ 0.0 5,679 1

Index Only Scan using obra_pk on obra obra20_ (cost=0..0 rows=0 width=0) (actual rows=5,679 loops=1)

  • Heap Fetches: 471
67.          

SubPlan (for Hash Join)

68. 0.000 0.000 ↓ 0.0 1 246

Nested Loop (cost=0..0 rows=0 width=0) (actual rows=1 loops=246)

69. 0.000 0.000 ↓ 0.0 29 246

Nested Loop (cost=0..0 rows=0 width=0) (actual rows=29 loops=246)

70. 0.000 0.000 ↓ 0.0 1 246

Bitmap Heap Scan on obra obra26_ (cost=0..0 rows=0 width=0) (actual rows=1 loops=246)

  • Heap Blocks: exact=246
71. 0.000 0.000 ↓ 0.0 0 246

BitmapOr (cost=0..0 rows=0 width=0) (actual rows=0 loops=246)

72. 0.000 0.000 ↓ 0.0 1 246

Bitmap Index Scan on obra_pk (cost=0..0 rows=0 width=0) (actual rows=1 loops=246)

  • Index Cond: ((obra26_.id)::text = (obra3_.id)::text)
73. 0.000 0.000 ↓ 0.0 0 246

Bitmap Index Scan on obra_pk (cost=0..0 rows=0 width=0) (actual rows=0 loops=246)

  • Index Cond: ((obra26_.id)::text = (obra20_.id)::text)
74. 0.000 0.000 ↓ 0.0 29 246

Index Only Scan using obra_usuario_uk on obra_usuario obrausuari24_ (cost=0..0 rows=0 width=0) (actual rows=29 loops=246)

  • Index Cond: ((obrausuari24_.dat_inativacao IS NULL) AND (obrausuari24_.id_obra = (obra26_.id)::text))
75. 0.000 0.000 ↓ 0.0 0 7,134

Index Scan using usuario_pk on usuario usuario25_ (cost=0..0 rows=0 width=0) (actual rows=0 loops=7,134)

  • Index Cond: ((usuario25_.id)::text = (obrausuari24_.id_usuario)::text)
  • Filter: (upper((usuario25_.id_conta_usuario)::text) = 'ROBERTM@LYX'::text)
76. 0.000 0.000 ↓ 0.0 3,973 246

Seq Scan on texto_i18n texto15_ (cost=0..0 rows=0 width=0) (actual rows=3,973 loops=246)

  • Filter: (texto15_.dat_inativacao IS NULL)
77. 0.000 0.000 ↓ 0.0 3,968 246

Seq Scan on traducao_texto_i18n traducoes16_ (cost=0..0 rows=0 width=0) (actual rows=3,968 loops=246)

  • Filter: ((traducoes16_.dat_inativacao IS NULL) AND ((traducoes16_.id_lingua_i18n)::text = 'pt_BR'::text))
78. 0.000 0.000 ↓ 0.0 1 246

Index Scan using empreiteira_pk on empreiteira empreiteir17_ (cost=0..0 rows=0 width=0) (actual rows=1 loops=246)

  • Index Cond: ((empreiteir17_.id)::text = (checklistr0_.id_empreiteira)::text)
79.          

SubPlan (for Result)

80. 0.000 0.000 ↓ 0.0 0 80

Bitmap Heap Scan on checklist_plano checklistp21_ (cost=0..0 rows=0 width=0) (actual rows=0 loops=80)

  • Filter: checklistp21_.flg_obriga_verificacao
  • Heap Blocks: exact=80
81. 0.000 0.000 ↓ 0.0 0 80

BitmapAnd (cost=0..0 rows=0 width=0) (actual rows=0 loops=80)

82. 0.000 0.000 ↓ 0.0 16 80

Bitmap Index Scan on checklist_plano_id_checklist_idx (cost=0..0 rows=0 width=0) (actual rows=16 loops=80)

  • Index Cond: ((checklistp21_.id_checklist)::text = (checklist4_.id)::text)
83. 0.000 0.000 ↓ 0.0 189 80

Bitmap Index Scan on checklist_plano_id_plano_qualidade_idx (cost=0..0 rows=0 width=0) (actual rows=189 loops=80)

  • Index Cond: ((checklistp21_.id_plano_qualidade)::text = (planoquali1_.id)::text)
84. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on checklist_plano checklistp21__1 (cost=0..0 rows=0 width=0) (never executed)

  • Filter: checklistp21__1.flg_obriga_verificacao
85. 0.000 0.000 ↓ 0.0 0 80

Nested Loop (cost=0..0 rows=0 width=0) (actual rows=0 loops=80)

86. 0.000 0.000 ↓ 0.0 1 80

Index Scan using plano_qualidade_empresa_id_empresa_idx on plano_qualidade_empresa planoquali22_ (cost=0..0 rows=0 width=0) (actual rows=1 loops=80)

  • Index Cond: ((planoquali22_.id_empresa)::text = (empresa5_.id)::text)
87. 0.000 0.000 ↓ 0.0 0 80

Seq Scan on checklist_plano_empresa checklists23_ (cost=0..0 rows=0 width=0) (actual rows=0 loops=80)

  • Filter: (checklists23_.flg_obriga_verificacao AND ((checklists23_.id_checklist)::text = (checklist4_.id)::text))
88. 0.000 0.000 ↓ 0.0 0 0

Nested Loop (cost=0..0 rows=0 width=0) (never executed)

89. 0.000 0.000 ↓ 0.0 0 0

Seq Scan on checklist_plano_empresa checklists23__1 (cost=0..0 rows=0 width=0) (never executed)

  • Filter: checklists23__1.flg_obriga_verificacao
90. 0.000 0.000 ↓ 0.0 0 0

Index Scan using plano_qualidade_empresa_pk on plano_qualidade_empresa planoquali22__1 (cost=0..0 rows=0 width=0) (never executed)

  • Index Cond: ((planoquali22__1.id)::text = (checklists23__1.id_plano_qualidade_empresa)::text)