explain.depesz.com

PostgreSQL's explain analyze made readable

Result: qqYc : Optimization for: plan #iorv

Settings

Optimization path:

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

Unique (cost=93,997.18..93,997.30 rows=24 width=91) (actual rows= loops=)

2.          

Initplan (forUnique)

3. 0.000 0.000 ↓ 0.0

Sort (cost=93,971.90..93,971.96 rows=24 width=91) (actual rows= loops=)

  • Sort Key: w.id
4. 0.000 0.000 ↓ 0.0

Aggregate (cost=25.26..25.27 rows=1 width=12) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop (cost=78,811.30..93,971.35 rows=24 width=91) (actual rows= loops=)

  • Join Filter: (acc_val.issue = i.id)
6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..25.26 rows=1 width=12) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=78,811.30..93,827.82 rows=33 width=103) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Index Only Scan using pk_jiraissue on jiraissue i (cost=0.00..4.34 rows=1 width=6) (actual rows= loops=)

  • Join Filter: ((worklog2."WORKLOG_ID")::numeric = w.id)
  • Index Cond: (id = w.issueid)
  • Filter: ((COALESCE(account."NAME", ac."NAME"))::text = $2)
9. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..16.60 rows=1 width=6) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Index Scan using cfvalue_issue on customfieldvalue v (cost=0.00..8.65 rows=1 width=18) (actual rows= loops=)

  • Index Cond: ((issue = i.id) AND (customfield = 19133::numeric))
11. 0.000 0.000 ↓ 0.0

Materialize (cost=0.00..12.57 rows=1 width=48) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Hash Join (cost=78,811.30..93,682.57 rows=6,634 width=63) (actual rows= loops=)

  • Hash Cond: (w.issueid = acc_val.issue)
13. 0.000 0.000 ↓ 0.0

Index Scan using issue_proj_num on jiraissue i (cost=0.00..8.33 rows=1 width=11) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Index Scan using idx_project_key on project p (cost=0.00..8.27 rows=1 width=5) (actual rows= loops=)

  • Index Cond: ((pkey)::text = 'PT'::text)
  • Index Cond: ((issuenum = 160::numeric) AND (project = p.id))
15. 0.000 0.000 ↓ 0.0

Seq Scan on worklog w (cost=0.00..5,357.51 rows=157,457 width=17) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.00..12.56 rows=1 width=48) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Hash (cost=78,728.66..78,728.66 rows=6,611 width=46) (actual rows= loops=)

  • Filter: ((startdate >= '2017-01-01 00:00:00'::timestamp without time zone) AND (startdate <= '2019-01-31 00:00:00'::timestamp without time zone))
18. 0.000 0.000 ↓ 0.0

Merge Join (cost=78,229.26..78,728.66 rows=6,611 width=46) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Index Scan using u_ao_c3c6e8_account_v1_key on "AO_C3C6E8_ACCOUNT_V1" account (cost=0.00..8.27 rows=1 width=50) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Index Scan using index_ao_013613_wa_194126942 on "AO_013613_WA_VALUE" worklog2 (cost=0.00..4.28 rows=1 width=13) (actual rows= loops=)

  • Merge Cond: (acc_val.numbervalue = ((ac."ID")::double precision))
  • Index Cond: (("KEY")::text = worklog2."VALUE")
  • Index Cond: ("WORK_ATTRIBUTE_ID" = 3)
21. 0.000 0.000 ↓ 0.0

Sort (cost=78,172.30..78,300.20 rows=51,161 width=14) (actual rows= loops=)

22. 0.000 0.000 ↓ 0.0

Sort (cost=56.97..58.87 rows=760 width=48) (actual rows= loops=)

  • Sort Key: acc_val.numbervalue
  • Sort Key: ((ac."ID")::double precision)
23. 0.000 0.000 ↓ 0.0

Seq Scan on customfieldvalue acc_val (cost=0.00..73,295.80 rows=51,161 width=14) (actual rows= loops=)

24. 0.000 0.000 ↓ 0.0

Seq Scan on "AO_C3C6E8_ACCOUNT_V1" ac (cost=0.00..20.60 rows=760 width=48) (actual rows= loops=)

  • Filter: (customfield = 19110::numeric)