explain.depesz.com

PostgreSQL's explain analyze made readable

Result: aTeH

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

Nested Loop Left Join (cost=9.86..3,434.02 rows=1 width=197) (actual rows= loops=)

  • Join Filter: ((x.administrationid = fact.administrationid) AND (fact.organizationid = org.organizationid) AND (fact.subtestid = obj.subtestid) AND (fact.assessmentlevelid = frm.assessmentlevelid) AND (fact.assessmentformid = frm.assessmentformid) AND (fact.objectiveid = obj.objectiveid))
2. 0.000 0.000 ↓ 0.0

Nested Loop (cost=9.44..3,431.27 rows=1 width=189) (actual rows= loops=)

  • Join Filter: ((frm.assessmentformid = ofrm.assessmentformid) AND (obj.objectiveid = ofrm.objectiveid))
3. 0.000 0.000 ↓ 0.0

Nested Loop (cost=9.44..3,429.75 rows=1 width=189) (actual rows= loops=)

  • Join Filter: (lvl.subtestid = tst.subtestid)
4. 0.000 0.000 ↓ 0.0

Nested Loop (cost=9.29..3,427.04 rows=1 width=197) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop (cost=9.02..3,426.58 rows=1 width=197) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=8.74..3,426.27 rows=1 width=197) (actual rows= loops=)

  • Join Filter: ((obj.objectivecode)::text = (x.objectivecode)::text)
7. 0.000 0.000 ↓ 0.0

Nested Loop (cost=8.32..1,169.84 rows=1 width=110) (actual rows= loops=)

  • Join Filter: (lvl.subtestid = obj.subtestid)
8. 0.000 0.000 ↓ 0.0

Nested Loop (cost=8.32..1,167.99 rows=2 width=76) (actual rows= loops=)

  • Join Filter: (frm.assessmentlevelid = lvl.assessmentlevelid)
9. 0.000 0.000 ↓ 0.0

Index Scan using udx_dim_assessmentlevel on dim_assessmentlevel lvl (cost=0.15..12.18 rows=2 width=20) (actual rows= loops=)

  • Index Cond: (administrationid = 525994)
10. 0.000 0.000 ↓ 0.0

Materialize (cost=8.17..1,145.35 rows=380 width=64) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Hash Join (cost=8.17..1,143.45 rows=380 width=64) (actual rows= loops=)

  • Hash Cond: (asmt.assessmentformid = frm.assessmentformid)
12. 0.000 0.000 ↓ 0.0

Seq Scan on dim_assessmentparticipant asmt (cost=0.00..1,081.24 rows=18,979 width=48) (actual rows= loops=)

  • Filter: (administrationid = 525994)
13. 0.000 0.000 ↓ 0.0

Hash (cost=8.16..8.16 rows=1 width=16) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Index Scan using udx_dim_assessmentform on dim_assessmentform frm (cost=0.14..8.16 rows=1 width=16) (actual rows= loops=)

  • Index Cond: (administrationid = 525994)
15. 0.000 0.000 ↓ 0.0

Materialize (cost=0.00..1.33 rows=19 width=34) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Seq Scan on dim_objective obj (cost=0.00..1.24 rows=19 width=34) (actual rows= loops=)

  • Filter: (administrationid = 525994)
17. 0.000 0.000 ↓ 0.0

Index Scan using pk_stg_subtestobjective_score on stg_subtestobjective_score x (cost=0.42..2,256.41 rows=1 width=159) (actual rows= loops=)

  • Index Cond: ((administrationid = 525994) AND (documentidcode = asmt.documentidcode) AND (testeventidcode = asmt.testeventidcode))
18. 0.000 0.000 ↓ 0.0

Index Scan using pk_dim_assessmentsession on dim_assessmentsession ses (cost=0.28..0.31 rows=1 width=20) (actual rows= loops=)

  • Index Cond: (assessmentsessionid = asmt.assessmentsessionid)
  • Filter: (administrationid = 525994)
19. 0.000 0.000 ↓ 0.0

Index Scan using pk_dim_organizations on dim_organizations org (cost=0.28..0.47 rows=1 width=12) (actual rows= loops=)

  • Index Cond: (organizationid = ses.organizationid)
  • Filter: ((administrationid = 525994) AND (orglevel = 2))
20. 0.000 0.000 ↓ 0.0

Index Scan using pk_dim_subtest on dim_subtest tst (cost=0.14..2.69 rows=1 width=12) (actual rows= loops=)

  • Index Cond: (subtestid = obj.subtestid)
  • Filter: (administrationid = 525994)
21. 0.000 0.000 ↓ 0.0

Seq Scan on dim_objectiveform ofrm (cost=0.00..1.24 rows=19 width=20) (actual rows= loops=)

  • Filter: (administrationid = 525994)
22. 0.000 0.000 ↓ 0.0

Index Scan using idx_fact_subtestobjectiveresult_1 on fact_subtestobjectiveresult fact (cost=0.42..2.73 rows=1 width=68) (actual rows= loops=)