explain.depesz.com

PostgreSQL's explain analyze made readable

Result: ANrY

Settings
# exclusive inclusive rows x rows loops node
1. 257.158 1,499.733 ↑ 690.0 1,351 1

Hash Left Join (cost=2,318.73..381,075.43 rows=932,190 width=284) (actual time=51.377..1,499.733 rows=1,351 loops=1)

  • Hash Cond: (te.id = te_isbillable.timeentryid)
2. 10.002 1,240.497 ↑ 690.0 1,351 1

Hash Left Join (cost=2,107.33..116,348.21 rows=932,190 width=283) (actual time=49.235..1,240.497 rows=1,351 loops=1)

  • Hash Cond: (("substring"(te_client.uri, (('^urn:replicon-tenant:'::text || si.tenantslug) || ':client:(.*)$'::text)))::integer = client.id)
3. 9.221 1,230.458 ↑ 690.0 1,351 1

Hash Left Join (cost=2,106.24..106,838.78 rows=932,190 width=350) (actual time=49.167..1,230.458 rows=1,351 loops=1)

  • Hash Cond: (te.id = te_client.timeentryid)
4. 10.576 1,219.534 ↑ 690.0 1,351 1

Hash Left Join (cost=1,894.84..103,124.77 rows=932,190 width=279) (actual time=47.442..1,219.534 rows=1,351 loops=1)

  • Hash Cond: (("substring"(te_timeofftype.uri, (('^urn:replicon-tenant:'::text || si.tenantslug) || ':time-off-type:(.*)$'::text)))::integer = toc.id)
5. 11.621 1,208.890 ↑ 690.0 1,351 1

Hash Left Join (cost=1,893.64..93,382.18 rows=932,190 width=346) (actual time=47.339..1,208.890 rows=1,351 loops=1)

  • Hash Cond: (te.id = te_timeofftype.timeentryid)
6. 84.913 1,195.397 ↑ 690.0 1,351 1

Hash Left Join (cost=1,682.24..89,668.17 rows=932,190 width=275) (actual time=45.446..1,195.397 rows=1,351 loops=1)

  • Hash Cond: (("substring"(te_breaktype.uri, (('^urn:replicon-tenant:'::text || si.tenantslug) || ':break-type:(.*)$'::text)))::uuid = bt.id)
7. 9.276 1,110.445 ↑ 690.0 1,351 1

Hash Left Join (cost=1,681.19..80,252.00 rows=932,190 width=330) (actual time=45.366..1,110.445 rows=1,351 loops=1)

  • Hash Cond: (te.id = te_breaktype.timeentryid)
8. 21.382 1,098.335 ↑ 690.0 1,351 1

Hash Left Join (cost=1,468.27..69,868.48 rows=932,190 width=259) (actual time=42.509..1,098.335 rows=1,351 loops=1)

  • Hash Cond: (te.id = te_billingrate.timeentryid)
9. 458.344 1,068.604 ↑ 690.0 1,351 1

Hash Left Join (cost=1,244.95..53,740.66 rows=932,190 width=188) (actual time=34.120..1,068.604 rows=1,351 loops=1)

  • Hash Cond: (("substring"(te_task.uri, (('^urn:replicon-tenant:'::text || si.tenantslug) || ':task:(.*)$'::text)))::integer = task.id)
10. 11.474 609.473 ↑ 690.0 1,351 1

Hash Left Join (cost=1,240.12..38,541.13 rows=932,190 width=255) (actual time=33.290..609.473 rows=1,351 loops=1)

  • Hash Cond: (te.id = te_task.timeentryid)
11. 246.327 588.769 ↑ 690.0 1,351 1

Hash Left Join (cost=1,016.56..22,275.07 rows=932,190 width=184) (actual time=24.039..588.769 rows=1,351 loops=1)

  • Hash Cond: (("substring"(te_project.uri, (('^urn:replicon-tenant:'::text || si.tenantslug) || ':project:(.*)$'::text)))::integer = proj.id)
12. 10.194 342.275 ↑ 690.0 1,351 1

Hash Join (cost=1,013.99..11,785.36 rows=932,190 width=247) (actual time=23.831..342.275 rows=1,351 loops=1)

  • Hash Cond: (te.userid = ui.id)
13. 12.565 331.218 ↑ 1.0 1,351 1

Hash Left Join (cost=478.22..759.07 rows=1,351 width=183) (actual time=22.790..331.218 rows=1,351 loops=1)

  • Hash Cond: (te.id = te_project.timeentryid)
14. 269.982 313.593 ↑ 1.0 1,351 1

Hash Left Join (cost=260.64..523.04 rows=1,351 width=112) (actual time=17.711..313.593 rows=1,351 loops=1)

  • Hash Cond: (("substring"(te_activity.uri, (('^urn:replicon-tenant:'::text || si.tenantslug) || ':activity:(.*)$'::text)))::integer = act.id)
15. 7.990 43.557 ↑ 1.0 1,351 1

Nested Loop (cost=259.49..507.90 rows=1,351 width=179) (actual time=17.112..43.557 rows=1,351 loops=1)

16. 0.011 0.011 ↑ 1.0 1 1

Seq Scan on systeminformation si (cost=0.00..1.01 rows=1 width=32) (actual time=0.007..0.011 rows=1 loops=1)

17. 8.588 35.556 ↑ 1.0 1,351 1

Hash Left Join (cost=259.49..493.38 rows=1,351 width=147) (actual time=17.091..35.556 rows=1,351 loops=1)

  • Hash Cond: (te.id = te_comment.timeentryid)
18. 6.707 23.018 ↑ 1.0 1,351 1

Hash Right Join (cost=45.77..264.30 rows=1,351 width=131) (actual time=13.110..23.018 rows=1,351 loops=1)

  • Hash Cond: (te_activity.timeentryid = te.id)
19. 4.322 4.322 ↑ 1.0 519 1

Seq Scan on timeentrymetadata te_activity (cost=0.00..211.39 rows=519 width=87) (actual time=1.080..4.322 rows=519 loops=1)

  • Filter: (key = 'urn:replicon:time-entry-metadata-key:activity'::text)
  • Rows Removed by Filter: 3832
20. 6.001 11.989 ↑ 1.0 1,351 1

Hash (cost=28.89..28.89 rows=1,351 width=60) (actual time=11.989..11.989 rows=1,351 loops=1)

  • Buckets: 2048 Batches: 1 Memory Usage: 111kB
21. 5.988 5.988 ↑ 1.0 1,351 1

Seq Scan on timeentry te (cost=0.00..28.89 rows=1,351 width=60) (actual time=0.023..5.988 rows=1,351 loops=1)

  • Filter: ((timeallocationtype <> 2) OR (timeallocationtype IS NULL))
22. 0.840 3.950 ↑ 1.0 186 1

Hash (cost=211.39..211.39 rows=186 width=32) (actual time=3.950..3.950 rows=186 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 22kB
23. 3.110 3.110 ↑ 1.0 186 1

Seq Scan on timeentrymetadata te_comment (cost=0.00..211.39 rows=186 width=32) (actual time=0.052..3.110 rows=186 loops=1)

  • Filter: (key = 'urn:replicon:time-entry-metadata-key:comments'::text)
  • Rows Removed by Filter: 4165
24. 0.030 0.054 ↑ 1.0 7 1

Hash (cost=1.07..1.07 rows=7 width=4) (actual time=0.054..0.054 rows=7 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 9kB
25. 0.024 0.024 ↑ 1.0 7 1

Seq Scan on activities act (cost=0.00..1.07 rows=7 width=4) (actual time=0.005..0.024 rows=7 loops=1)

26. 1.685 5.060 ↑ 1.0 495 1

Hash (cost=211.39..211.39 rows=495 width=87) (actual time=5.060..5.060 rows=495 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 62kB
27. 3.375 3.375 ↑ 1.0 495 1

Seq Scan on timeentrymetadata te_project (cost=0.00..211.39 rows=495 width=87) (actual time=0.713..3.375 rows=495 loops=1)

  • Filter: (key = 'urn:replicon:time-entry-metadata-key:project'::text)
  • Rows Removed by Filter: 3856
28. 0.145 0.863 ↑ 690.0 30 1

Hash (cost=277.02..277.02 rows=20,700 width=68) (actual time=0.863..0.863 rows=30 loops=1)

  • Buckets: 32768 Batches: 1 Memory Usage: 259kB
29. 0.243 0.718 ↑ 690.0 30 1

Nested Loop (cost=0.00..277.02 rows=20,700 width=68) (actual time=0.042..0.718 rows=30 loops=1)

30. 0.012 0.012 ↑ 690.0 1 1

Seq Scan on projectsysteminformation psi (cost=0.00..16.90 rows=690 width=32) (actual time=0.008..0.012 rows=1 loops=1)

31. 0.305 0.463 ↑ 1.0 30 1

Materialize (cost=0.00..1.45 rows=30 width=36) (actual time=0.023..0.463 rows=30 loops=1)

32. 0.158 0.158 ↑ 1.0 30 1

Seq Scan on userinfo ui (cost=0.00..1.30 rows=30 width=36) (actual time=0.011..0.158 rows=30 loops=1)

33. 0.086 0.167 ↑ 1.0 25 1

Hash (cost=2.25..2.25 rows=25 width=8) (actual time=0.167..0.167 rows=25 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 9kB
34. 0.081 0.081 ↑ 1.0 25 1

Seq Scan on project proj (cost=0.00..2.25 rows=25 width=8) (actual time=0.007..0.081 rows=25 loops=1)

35. 3.397 9.230 ↑ 1.0 974 1

Hash (cost=211.39..211.39 rows=974 width=87) (actual time=9.230..9.230 rows=974 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 112kB
36. 5.833 5.833 ↑ 1.0 974 1

Seq Scan on timeentrymetadata te_task (cost=0.00..211.39 rows=974 width=87) (actual time=1.294..5.833 rows=974 loops=1)

  • Filter: (key = 'urn:replicon:time-entry-metadata-key:task'::text)
  • Rows Removed by Filter: 3377
37. 0.422 0.787 ↑ 1.0 126 1

Hash (cost=3.26..3.26 rows=126 width=4) (actual time=0.787..0.787 rows=126 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 13kB
38. 0.365 0.365 ↑ 1.0 126 1

Seq Scan on task (cost=0.00..3.26 rows=126 width=4) (actual time=0.010..0.365 rows=126 loops=1)

39. 3.479 8.349 ↑ 1.0 954 1

Hash (cost=211.39..211.39 rows=954 width=87) (actual time=8.349..8.349 rows=954 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 134kB
40. 4.870 4.870 ↑ 1.0 954 1

Seq Scan on timeentrymetadata te_billingrate (cost=0.00..211.39 rows=954 width=87) (actual time=0.015..4.870 rows=954 loops=1)

  • Filter: (key = 'urn:replicon:time-entry-metadata-key:billing-rate'::text)
  • Rows Removed by Filter: 3397
41. 0.499 2.834 ↑ 1.0 123 1

Hash (cost=211.39..211.39 rows=123 width=87) (actual time=2.834..2.834 rows=123 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 26kB
42. 2.335 2.335 ↑ 1.0 123 1

Seq Scan on timeentrymetadata te_breaktype (cost=0.00..211.39 rows=123 width=87) (actual time=0.806..2.335 rows=123 loops=1)

  • Filter: (key = 'urn:replicon:time-entry-metadata-key:break-type'::text)
  • Rows Removed by Filter: 4228
43. 0.027 0.039 ↑ 1.0 2 1

Hash (cost=1.02..1.02 rows=2 width=16) (actual time=0.039..0.039 rows=2 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 9kB
44. 0.012 0.012 ↑ 1.0 2 1

Seq Scan on breaktype bt (cost=0.00..1.02 rows=2 width=16) (actual time=0.006..0.012 rows=2 loops=1)

45. 0.006 1.872 ↓ 0.0 0 1

Hash (cost=211.39..211.39 rows=1 width=87) (actual time=1.872..1.872 rows=0 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 8kB
46. 1.866 1.866 ↓ 0.0 0 1

Seq Scan on timeentrymetadata te_timeofftype (cost=0.00..211.39 rows=1 width=87) (actual time=1.866..1.866 rows=0 loops=1)

  • Filter: (key = 'urn:replicon:time-entry-metadata-key:time-off-type'::text)
  • Rows Removed by Filter: 4351
47. 0.035 0.068 ↑ 1.0 9 1

Hash (cost=1.09..1.09 rows=9 width=4) (actual time=0.068..0.068 rows=9 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 9kB
48. 0.033 0.033 ↑ 1.0 9 1

Seq Scan on timeoffcode toc (cost=0.00..1.09 rows=9 width=4) (actual time=0.006..0.033 rows=9 loops=1)

49. 0.005 1.703 ↓ 0.0 0 1

Hash (cost=211.39..211.39 rows=1 width=87) (actual time=1.703..1.703 rows=0 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 8kB
50. 1.698 1.698 ↓ 0.0 0 1

Seq Scan on timeentrymetadata te_client (cost=0.00..211.39 rows=1 width=87) (actual time=1.698..1.698 rows=0 loops=1)

  • Filter: (key = 'urn:replicon:time-entry-metadata-key:client'::text)
  • Rows Removed by Filter: 4351
51. 0.020 0.037 ↑ 1.0 4 1

Hash (cost=1.04..1.04 rows=4 width=4) (actual time=0.037..0.037 rows=4 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 9kB
52. 0.017 0.017 ↑ 1.0 4 1

Seq Scan on clients client (cost=0.00..1.04 rows=4 width=4) (actual time=0.005..0.017 rows=4 loops=1)

53. 0.006 2.078 ↓ 0.0 0 1

Hash (cost=211.39..211.39 rows=1 width=17) (actual time=2.078..2.078 rows=0 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 8kB
54. 2.072 2.072 ↓ 0.0 0 1

Seq Scan on timeentrymetadata te_isbillable (cost=0.00..211.39 rows=1 width=17) (actual time=2.072..2.072 rows=0 loops=1)

  • Filter: (key = 'urn:replicon:time-entry-metadata-key:is-billable'::text)
  • Rows Removed by Filter: 4351
Planning time : 18.730 ms
Execution time : 1,509.388 ms