explain.depesz.com

PostgreSQL's explain analyze made readable

Result: iExR

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

Nested Loop (cost=199.17..500.00 rows=191 width=20) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Index Only Scan using frameworks_pkey on frameworks f (cost=0.15..8.17 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = 2)
3. 0.000 0.000 ↓ 0.0

Nested Loop (cost=199.02..489.92 rows=191 width=24) (actual rows= loops=)

  • Join Filter: (rcr.child_requirement_id = cmm_requirements.id)
4. 0.000 0.000 ↓ 0.0

Nested Loop (cost=198.74..380.34 rows=191 width=32) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Hash Join (cost=198.46..293.68 rows=191 width=40) (actual rows= loops=)

  • Hash Cond: (cmm_requirements_snapshots.program_requirement_id = rcr.child_requirement_id)
6. 0.000 0.000 ↓ 0.0

Index Scan using index_program_requirements_snapshots_on_snapshot_id on program_requirements_snapshots cmm_requirements_snapshots (cost=0.28..86.44 rows=1,908 width=16) (actual rows= loops=)

  • Index Cond: (snapshot_id = 2)
  • Filter: (iteration = 1)
7. 0.000 0.000 ↓ 0.0

Hash (cost=195.79..195.79 rows=191 width=24) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Hash Join (cost=174.46..195.79 rows=191 width=24) (actual rows= loops=)

  • Hash Cond: (rcr.parent_requirement_id = nist_levels.id)
9. 0.000 0.000 ↓ 0.0

Seq Scan on requirement_child_requirements rcr (cost=0.00..16.03 rows=903 width=8) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Hash (cost=169.43..169.43 rows=403 width=16) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Nested Loop (cost=15.79..169.43 rows=403 width=16) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Hash Join (cost=15.51..44.96 rows=24 width=12) (actual rows= loops=)

  • Hash Cond: (fc.parent_id = d.id)
13. 0.000 0.000 ↓ 0.0

Seq Scan on framework_categories fc (cost=0.00..29.14 rows=114 width=8) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Hash (cost=15.16..15.16 rows=28 width=8) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Index Scan using index_framework_categories_on_framework_id on framework_categories d (cost=0.14..15.16 rows=28 width=8) (actual rows= loops=)

  • Index Cond: (framework_id = 2)
16. 0.000 0.000 ↓ 0.0

Index Scan using index_program_requirements_on_framework_category_id on program_requirements nist_levels (cost=0.28..5.00 rows=19 width=8) (actual rows= loops=)

  • Index Cond: (framework_category_id = fc.id)
17. 0.000 0.000 ↓ 0.0

Index Scan using index_program_requirements_snapshots_on_program_requirement_id on program_requirements_snapshots nist_levels_snapshots (cost=0.28..0.44 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (program_requirement_id = nist_levels.id)
  • Filter: (snapshot_id = 2)
18. 0.000 0.000 ↓ 0.0

Index Only Scan using program_requirements_pkey on program_requirements cmm_requirements (cost=0.28..0.56 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = cmm_requirements_snapshots.program_requirement_id)