explain.depesz.com

PostgreSQL's explain analyze made readable

Result: srAX

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

HashSetOp Intersect (cost=1,009.73..166,894.02 rows=11 width=578) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Append (cost=1,009.73..166,893.81 rows=41 width=578) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Subquery Scan on *SELECT* 1 (cost=1,009.73..83,422.74 rows=11 width=73) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Gather (cost=1,009.73..83,422.63 rows=11 width=69) (actual rows= loops=)

  • Workers Planned: 2
5. 0.000 0.000 ↓ 0.0

Nested Loop (cost=9.73..82,421.53 rows=5 width=69) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=9.30..82,406.16 rows=5 width=29) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Nested Loop (cost=8.88..82,390.28 rows=5 width=8) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Hash Join (cost=8.31..79,412.60 rows=38 width=8) (actual rows= loops=)

  • Hash Cond: (a.tid = td.tid)
9. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on assays a (cost=0.00..78,068.00 rows=508,900 width=16) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Hash (cost=8.30..8.30 rows=1 width=8) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Index Scan using idx_td_chembl_id on target_dictionary td (cost=0.29..8.30 rows=1 width=8) (actual rows= loops=)

  • Index Cond: ((chembl_id)::text = 'CHEMBL301'::text)
12. 0.000 0.000 ↓ 0.0

Index Scan using fk_act_assay_id on activities act (cost=0.56..78.29 rows=7 width=16) (actual rows= loops=)

  • Index Cond: (assay_id = a.assay_id)
  • Filter: ((standard_value < '50'::numeric) AND ((standard_relation)::text = '='::text) AND ((standard_type)::text = 'IC50'::text) AND ((standard_units)::text = 'nM'::text))
13. 0.000 0.000 ↓ 0.0

Index Scan using pk_moldict_molregno on molecule_dictionary md (cost=0.43..3.18 rows=1 width=21) (actual rows= loops=)

  • Index Cond: (molregno = act.molregno)
14. 0.000 0.000 ↓ 0.0

Index Scan using pk_cmpdstr_molregno on compound_structures cs (cost=0.43..3.07 rows=1 width=64) (actual rows= loops=)

  • Index Cond: (molregno = md.molregno)
15. 0.000 0.000 ↓ 0.0

Subquery Scan on *SELECT* 2 (cost=1,009.73..83,470.87 rows=30 width=73) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Gather (cost=1,009.73..83,470.57 rows=30 width=69) (actual rows= loops=)

  • Workers Planned: 2
17. 0.000 0.000 ↓ 0.0

Nested Loop (cost=9.73..82,467.57 rows=12 width=69) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

Nested Loop (cost=9.30..82,430.68 rows=12 width=29) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Nested Loop (cost=8.88..82,394.84 rows=12 width=8) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Hash Join (cost=8.31..79,412.60 rows=38 width=8) (actual rows= loops=)

  • Hash Cond: (a_1.tid = td_1.tid)
21. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on assays a_1 (cost=0.00..78,068.00 rows=508,900 width=16) (actual rows= loops=)

22. 0.000 0.000 ↓ 0.0

Hash (cost=8.30..8.30 rows=1 width=8) (actual rows= loops=)

23. 0.000 0.000 ↓ 0.0

Index Scan using idx_td_chembl_id on target_dictionary td_1 (cost=0.29..8.30 rows=1 width=8) (actual rows= loops=)

  • Index Cond: ((chembl_id)::text = 'CHEMBL4036'::text)
24. 0.000 0.000 ↓ 0.0

Index Scan using fk_act_assay_id on activities act_1 (cost=0.56..78.29 rows=19 width=16) (actual rows= loops=)

  • Index Cond: (assay_id = a_1.assay_id)
  • Filter: ((standard_value > '200'::numeric) AND ((standard_relation)::text = '='::text) AND ((standard_type)::text = 'IC50'::text) AND ((standard_units)::text = 'nM'::text))
25. 0.000 0.000 ↓ 0.0

Index Scan using pk_moldict_molregno on molecule_dictionary md_1 (cost=0.43..2.99 rows=1 width=21) (actual rows= loops=)

  • Index Cond: (molregno = act_1.molregno)
26. 0.000 0.000 ↓ 0.0

Index Scan using pk_cmpdstr_molregno on compound_structures cs_1 (cost=0.43..3.07 rows=1 width=64) (actual rows= loops=)