explain.depesz.com

PostgreSQL's explain analyze made readable

Result: PLf

Settings
# exclusive inclusive rows x rows loops node
1. 122.020 23,242.278 ↑ 1.0 1 1

Limit (cost=832,454.22..1,760,962.13 rows=1 width=207) (actual time=23,120.259..23,242.278 rows=1 loops=1)

  • Buffers: shared hit=1,391,213
2. 0.031 23,120.258 ↑ 1.0 1 1

Merge Join (cost=832,454.22..1,760,962.13 rows=1 width=207) (actual time=23,120.258..23,120.258 rows=1 loops=1)

  • Buffers: shared hit=1,391,213
3. 0.003 23,120.207 ↑ 4.0 1 1

Nested Loop (cost=832,452.54..2,070,461.43 rows=4 width=181) (actual time=23,120.206..23,120.207 rows=1 loops=1)

  • Buffers: shared hit=1,391,212
4. 0.011 0.011 ↑ 5.0 1 1

Index Scan using pk_timeunit on timeunit tu (cost=0.13..12.21 rows=5 width=9) (actual time=0.011..0.011 rows=1 loops=1)

  • Buffers: shared hit=2
5. 0.007 23,120.193 ↑ 1.0 1 1

Materialize (cost=832,452.41..2,070,449.16 rows=1 width=172) (actual time=23,120.193..23,120.193 rows=1 loops=1)

  • Buffers: shared hit=1,391,210
6. 1.446 23,120.186 ↑ 1.0 1 1

Nested Loop (cost=832,452.41..2,070,449.16 rows=1 width=172) (actual time=23,120.186..23,120.186 rows=1 loops=1)

  • Filter: ((cps.domainusageid = 1) OR ((cps.domainusageid = 2) AND (cpsd.contractprotectionservicedomainid IS NOT NULL)) OR ((cps.domainusageid = 3) AND (cpsd.contractprotectionservicedomainid IS NULL)))
  • Buffers: shared hit=1,391,210
7. 0.005 23,115.670 ↑ 1.0 1 1

Nested Loop (cost=832,452.41..2,069,221.04 rows=1 width=184) (actual time=23,115.67..23,115.67 rows=1 loops=1)

  • Buffers: shared hit=1,390,921
8. 3,097.678 23,115.630 ↑ 1.0 1 1

Nested Loop (cost=832,451.97..2,069,220.46 rows=1 width=159) (actual time=23,115.63..23,115.63 rows=1 loops=1)

  • Buffers: shared hit=1,390,917
9. 0.040 0.040 ↑ 309.5 2 1

Index Scan using pk_contractprotectionservice on contract_protectionservice cps (cost=0.28..129.56 rows=619 width=12) (actual time=0.032..0.04 rows=2 loops=1)

  • Filter: ((NOT cps.deleted) AND (cps.protectionserviceid = 2) AND ((cps.domainusageid = 1) OR (cps.domainusageid = 2) OR (cps.domainusageid = 3)))
  • Buffers: shared hit=3
10. 5,401.982 20,017.912 ↓ 5,560,032.5 11,120,065 2

Materialize (cost=832,451.69..2,069,072.34 rows=2 width=151) (actual time=3,468.83..10,008.956 rows=11,120,065 loops=2)

  • Buffers: shared hit=1,390,914
11. 0.000 14,615.930 ↓ 11,119,844.5 22,239,689 1

Gather (cost=832,451.69..2,069,072.33 rows=2 width=151) (actual time=6,937.656..14,615.93 rows=22,239,689 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
  • Buffers: shared hit=1,390,914
12. 4,896.215 16,345.083 ↓ 7,413,230.0 7,413,230 3 / 3

Hash Join (cost=831,451.69..2,068,072.13 rows=1 width=151) (actual time=6,932.7..16,345.083 rows=7,413,230 loops=3)

  • Buffers: shared hit=1,390,914
13. 4,522.746 4,522.746 ↑ 1.3 14,401,595 3 / 3

Seq Scan on incident i (cost=0..1,033,626.52 rows=18,043,899 width=16) (actual time=0.013..4,522.746 rows=14,401,595 loops=3)

  • Filter: ((NOT i.deleted) AND (i.incidentstatusid <> ALL ('{4,11,17}'::integer[])))
  • Buffers: shared hit=757,728
14. 1,307.252 6,926.122 ↓ 1.3 1,912,013 3 / 3

Hash (cost=806,222.01..806,222.01 rows=1,441,696 width=159) (actual time=6,926.122..6,926.122 rows=1,912,013 loops=3)

  • Buffers: shared hit=633,086
15. 466.097 5,618.870 ↓ 1.3 1,912,013 3 / 3

Hash Join (cost=3,054.42..806,222.01 rows=1,441,696 width=159) (actual time=29.158..5,618.87 rows=1,912,013 loops=3)

  • Buffers: shared hit=633,086
16. 488.101 5,152.753 ↓ 1.3 1,912,013 3 / 3

Hash Join (cost=3,053.12..801,202.5 rows=1,441,696 width=159) (actual time=29.119..5,152.753 rows=1,912,013 loops=3)

  • Buffers: shared hit=633,083
17. 536.122 4,664.537 ↓ 1.3 1,930,930 3 / 3

Hash Join (cost=3,039.5..793,610.05 rows=1,441,696 width=130) (actual time=28.987..4,664.537 rows=1,930,930 loops=3)

  • Buffers: shared hit=633,068
18. 451.847 4,115.878 ↓ 1.3 1,930,930 3 / 3

Hash Join (cost=1,709.73..788,495.42 rows=1,441,696 width=107) (actual time=16.214..4,115.878 rows=1,930,930 loops=3)

  • Buffers: shared hit=631,394
19. 518.314 3,663.764 ↓ 1.3 1,930,930 3 / 3

Hash Join (cost=1,674.36..784,654.82 rows=1,441,696 width=99) (actual time=15.927..3,663.764 rows=1,930,930 loops=3)

  • Buffers: shared hit=631,340
20. 580.239 3,131.210 ↓ 1.4 2,366,375 3 / 3

Hash Join (cost=170.85..778,829.24 rows=1,646,315 width=91) (actual time=1.535..3,131.21 rows=2,366,375 loops=3)

  • Buffers: shared hit=629,138
21. 631.536 2,549.514 ↓ 1.2 2,577,149 3 / 3

Hash Join (cost=1.15..773,200.88 rows=2,077,423 width=75) (actual time=0.037..2,549.514 rows=2,577,149 loops=3)

  • Buffers: shared hit=628,883
22. 1,917.961 1,917.961 ↑ 1.2 4,235,655 3 / 3

Seq Scan on link l (cost=0..753,788.8 rows=5,193,558 width=79) (actual time=0.006..1,917.961 rows=4,235,655 loops=3)

  • Filter: ((NOT l.deleted) AND (l.monitorexecutiontypeid <> 3) AND (l.linktypeid = 1))
  • Buffers: shared hit=628,880
23. 0.007 0.017 ↑ 1.0 4 3 / 3

Hash (cost=1.1..1.1 rows=4 width=4) (actual time=0.016..0.017 rows=4 loops=3)

  • Buffers: shared hit=3
24. 0.010 0.010 ↑ 1.0 4 3 / 3

Seq Scan on enforcementstatus es (cost=0..1.1 rows=4 width=4) (actual time=0.009..0.01 rows=4 loops=3)

  • Filter: es.monitorizable
  • Buffers: shared hit=3
25. 0.501 1.457 ↑ 1.0 3,372 3 / 3

Hash (cost=127.55..127.55 rows=3,372 width=16) (actual time=1.456..1.457 rows=3,372 loops=3)

  • Buffers: shared hit=255
26. 0.956 0.956 ↑ 1.0 3,372 3 / 3

Seq Scan on asset a (cost=0..127.55 rows=3,372 width=16) (actual time=0.006..0.956 rows=3,372 loops=3)

  • Filter: a.active
  • Buffers: shared hit=255
27. 4.571 14.240 ↓ 1.0 32,186 3 / 3

Hash (cost=1,101.37..1,101.37 rows=32,171 width=8) (actual time=14.239..14.24 rows=32,186 loops=3)

  • Buffers: shared hit=2,202
28. 9.669 9.669 ↓ 1.0 32,186 3 / 3

Seq Scan on domain d (cost=0..1,101.37 rows=32,171 width=8) (actual time=0.006..9.669 rows=32,186 loops=3)

  • Filter: (d.active AND (d.masterdomainid IS NULL))
  • Buffers: shared hit=2,202
29. 0.099 0.267 ↑ 1.0 772 3 / 3

Hash (cost=25.72..25.72 rows=772 width=8) (actual time=0.267..0.267 rows=772 loops=3)

  • Buffers: shared hit=54
30. 0.168 0.168 ↑ 1.0 772 3 / 3

Seq Scan on customer cu (cost=0..25.72 rows=772 width=8) (actual time=0.011..0.168 rows=772 loops=3)

  • Buffers: shared hit=54
31. 5.688 12.537 ↑ 1.0 34,301 3 / 3

Hash (cost=901.01..901.01 rows=34,301 width=31) (actual time=12.536..12.537 rows=34,301 loops=3)

  • Buffers: shared hit=1,674
32. 6.849 6.849 ↑ 1.0 34,301 3 / 3

Seq Scan on monitordomainconfiguration mdc (cost=0..901.01 rows=34,301 width=31) (actual time=0.006..6.849 rows=34,301 loops=3)

  • Buffers: shared hit=1,674
33. 0.065 0.115 ↑ 1.0 345 3 / 3

Hash (cost=8.45..8.45 rows=345 width=45) (actual time=0.115..0.115 rows=345 loops=3)

  • Buffers: shared hit=15
34. 0.050 0.050 ↑ 1.0 345 3 / 3

Seq Scan on bot b (cost=0..8.45 rows=345 width=45) (actual time=0.01..0.05 rows=345 loops=3)

  • Buffers: shared hit=15
35. 0.007 0.020 ↑ 1.0 13 3 / 3

Hash (cost=1.13..1.13 rows=13 width=4) (actual time=0.019..0.02 rows=13 loops=3)

  • Buffers: shared hit=3
36. 0.013 0.013 ↑ 1.0 13 3 / 3

Seq Scan on obsolescence o (cost=0..1.13 rows=13 width=4) (actual time=0.011..0.013 rows=13 loops=3)

  • Buffers: shared hit=3
37. 0.035 0.035 ↑ 1.0 1 1

Index Scan using idx_monitorrequest_link on monitorrequest mr (cost=0.44..0.57 rows=1 width=29) (actual time=0.035..0.035 rows=1 loops=1)

  • Index Cond: (l.linkid = mr.linkid)
  • Buffers: shared hit=4
38. 3.070 3.070 ↑ 1.0 25,421 1

Seq Scan on contract_protectionservice__domain cpsd (cost=0..592.42 rows=25,428 width=12) (actual time=0.007..3.07 rows=25,421 loops=1)

  • Filter: (NOT cpsd.deleted)
  • Buffers: shared hit=289
39. 0.014 0.020 ↑ 5.0 4 1

Sort (cost=1.68..1.73 rows=20 width=20) (actual time=0.02..0.02 rows=4 loops=1)

  • Sort Key: cad.timeunitid
  • Sort Method: quicksort Memory: 26kB
  • Buffers: shared hit=1
40. 0.006 0.006 ↑ 1.0 20 1

Seq Scan on cadence cad (cost=0..1.25 rows=20 width=20) (actual time=0.003..0.006 rows=20 loops=1)

  • Filter: (cad.cadence > 0)
  • Buffers: shared hit=1
Planning time : 31.574 ms
Execution time : 24,202.776 ms