explain.depesz.com

PostgreSQL's explain analyze made readable

Result: mbbK

Settings
# exclusive inclusive rows x rows loops node
1. 0.021 1.787 ↑ 1.0 100 1

Limit (cost=84.49..288.90 rows=100 width=325) (actual time=0.299..1.787 rows=100 loops=1)

  • Buffers: shared hit=1302 read=19
2. 0.034 1.766 ↑ 3,694.7 100 1

Nested Loop Left Join (cost=84.49..755,321.34 rows=369,472 width=325) (actual time=0.298..1.766 rows=100 loops=1)

  • Buffers: shared hit=1302 read=19
3. 0.064 1.432 ↑ 3,694.7 100 1

Nested Loop Left Join (cost=84.06..567,352.54 rows=369,472 width=286) (actual time=0.289..1.432 rows=100 loops=1)

  • Buffers: shared hit=905 read=16
4. 0.042 1.168 ↑ 3,694.7 100 1

Nested Loop Left Join (cost=83.79..455,555.31 rows=369,472 width=270) (actual time=0.261..1.168 rows=100 loops=1)

  • Buffers: shared hit=639 read=14
5. 0.036 1.026 ↑ 3,694.7 100 1

Nested Loop Left Join (cost=83.64..391,809.41 rows=369,472 width=254) (actual time=0.257..1.026 rows=100 loops=1)

  • Buffers: shared hit=538 read=14
6. 0.190 0.790 ↑ 3,694.7 100 1

Nested Loop Left Join (cost=83.22..197,226.48 rows=369,472 width=238) (actual time=0.251..0.790 rows=100 loops=1)

  • Filter: (((((taskdetails.module)::text = ANY ('{request,problem,change,general}'::text[])) OR (taskdetails.ownerid = 4)) AND ((taskdetails.module)::text <> ALL ('{milestone,project}'::text[]))) OR (((taskdetails.module)::text = ANY ('{milestone,project}'::text[])) AND ((NOT (hashed SubPlan 1)) OR (hashed SubPlan 2) OR (hashed SubPlan 3))))
  • Buffers: shared hit=238 read=14
7. 0.171 0.333 ↑ 3,700.5 100 1

Index Scan using taskdetails_scheduledstarttime_taskid_idx on taskdetails (cost=51.95..78,750.21 rows=370,054 width=214) (actual time=0.230..0.333 rows=100 loops=1)

  • Filter: (NOT (hashed SubPlan 4))
  • Buffers: shared hit=27 read=12
8.          

SubPlan (forIndex Scan)

9. 0.006 0.162 ↑ 1.9 14 1

Nested Loop (cost=0.84..51.46 rows=27 width=8) (actual time=0.141..0.162 rows=14 loops=1)

  • Buffers: shared hit=18 read=7
10. 0.061 0.061 ↑ 1.0 5 1

Index Scan using workorder_isparent_idx on workorder (cost=0.42..8.51 rows=5 width=8) (actual time=0.057..0.061 rows=5 loops=1)

  • Index Cond: (isparent = false)
  • Filter: (NOT isparent)
  • Buffers: shared hit=1 read=4
11. 0.095 0.095 ↑ 2.0 3 5

Index Scan using workordertotaskdetails_fk1_idx on workordertotaskdetails workordertotaskdetails_1 (cost=0.42..8.53 rows=6 width=16) (actual time=0.018..0.019 rows=3 loops=5)

  • Index Cond: (workorderid = workorder.workorderid)
  • Buffers: shared hit=17 read=3
12. 0.200 0.200 ↓ 0.0 0 100

Index Scan using tasktoprojects_fk1_idx on tasktoprojects (cost=0.27..0.29 rows=1 width=24) (actual time=0.002..0.002 rows=0 loops=100)

  • Index Cond: (taskdetails.taskid = taskid)
  • Buffers: shared hit=209 read=2
13.          

SubPlan (forNested Loop Left Join)

14. 0.067 0.067 ↓ 0.0 0 1

Seq Scan on projectmembers (cost=0.00..5.51 rows=1 width=8) (actual time=0.067..0.067 rows=0 loops=1)

  • Filter: ((projectroleid = ANY ('{4,2}'::bigint[])) AND (userid = 4))
  • Rows Removed by Filter: 234
  • Buffers: shared hit=2
15. 0.000 0.000 ↓ 0.0 0

Nested Loop (cost=0.00..8.46 rows=1 width=8) (never executed)

  • Join Filter: (milestonedetails.projectid = projectmembers_1.projectid)
16. 0.000 0.000 ↓ 0.0 0

Seq Scan on milestonedetails (cost=0.00..2.94 rows=1 width=16) (never executed)

  • Filter: (ownerid = 4)
17. 0.000 0.000 ↓ 0.0 0

Seq Scan on projectmembers projectmembers_1 (cost=0.00..5.51 rows=1 width=8) (never executed)

  • Filter: ((projectroleid = ANY ('{4,2}'::bigint[])) AND (userid = 4))
18. 0.000 0.000 ↓ 0.0 0

Nested Loop (cost=0.84..17.02 rows=1 width=8) (never executed)

19. 0.000 0.000 ↓ 0.0 0

Nested Loop (cost=0.70..16.76 rows=1 width=16) (never executed)

20. 0.000 0.000 ↓ 0.0 0

Index Scan using taskdetails_fk2_idx on taskdetails taskdetails_1 (cost=0.42..8.44 rows=1 width=8) (never executed)

  • Index Cond: (ownerid = 4)
21. 0.000 0.000 ↓ 0.0 0

Index Scan using tasktoprojects_fk1_idx on tasktoprojects tasktoprojects_1 (cost=0.27..8.29 rows=1 width=16) (never executed)

  • Index Cond: (taskid = taskdetails_1.taskid)
22. 0.000 0.000 ↓ 0.0 0

Index Scan using projectmembers_uk on projectmembers projectmembers_2 (cost=0.14..0.20 rows=1 width=8) (never executed)

  • Index Cond: ((projectid = tasktoprojects_1.projectid) AND (userid = 4))
  • Filter: (projectroleid = ANY ('{4,2}'::bigint[]))
23. 0.200 0.200 ↓ 0.0 0 100

Index Scan using workordertaskdetails_fk2_idx on workordertotaskdetails (cost=0.42..0.52 rows=1 width=16) (actual time=0.002..0.002 rows=0 loops=100)

  • Index Cond: (taskdetails.taskid = taskid)
  • Buffers: shared hit=300
24. 0.100 0.100 ↓ 0.0 0 100

Index Scan using problemtotaskdetails_fk2_idx on problemtotaskdetails (cost=0.14..0.16 rows=1 width=16) (actual time=0.001..0.001 rows=0 loops=100)

  • Index Cond: (taskdetails.taskid = taskid)
  • Buffers: shared hit=101
25. 0.200 0.200 ↑ 1.0 1 100

Index Scan using changetotaskdet_fk2_idx on changetotaskdetails (cost=0.28..0.29 rows=1 width=16) (actual time=0.002..0.002 rows=1 loops=100)

  • Index Cond: (taskdetails.taskid = taskid)
  • Buffers: shared hit=266 read=2
26. 0.300 0.300 ↑ 1.0 1 100

Index Scan using taskdescription_fk1_idx on taskdescription (cost=0.42..0.51 rows=1 width=31) (actual time=0.003..0.003 rows=1 loops=100)

  • Index Cond: (taskdetails.taskid = taskid)
  • Buffers: shared hit=397 read=3
Planning time : 8.778 ms
Execution time : 2.059 ms