explain.depesz.com

PostgreSQL's explain analyze made readable

Result: E3OQ : dynamic test

Settings
# exclusive inclusive rows x rows loops node
1. 1,481.845 142,797.987 ↓ 1.7 294,410 1

Sort (cost=2,756,818.67..2,757,249.99 rows=172,528 width=208) (actual time=142,662.742..142,797.987 rows=294,410 loops=1)

  • Sort Key: ((dmv_bi_projectcostbill0.entrydate)::text) COLLATE "en_US", dmv_bi_projectcostbill0.taskid, dmv_bi_projectcostbill0.projectid, dmv_bi_projectcostbill0.userid, dmv_bi_projectcostbill0.timeoffcodeid, dmv_bi_projectcostbill0.breaktypeid, dmv_bi_projectcostbill0.locationid, dmv_bi_projectcostbill0.divisionid, dmv_bi_projectcostbill0.costcenterid, dmv_bi_projectcostbill0.servicecenterid, dmv_bi_projectcostbill0.billableamount, dmv_bi_projectcostbill0.cost, dmv_bi_projectcostbill0.expensecost, dmv_bi_projectcostbill0.allocatedhours
  • Sort Method: external sort Disk: 17984kB
  • Buffers: shared hit=7024966 read=118344, temp read=149560 written=209978
2. 242.223 141,316.142 ↓ 1.7 294,410 1

Subquery Scan on dmv_bi_projectcostbill0 (cost=2,653,970.83..2,724,707.27 rows=172,528 width=208) (actual time=133,163.233..141,316.142 rows=294,410 loops=1)

  • Buffers: shared hit=7024956 read=118342, temp read=147312 written=207730
3. 2,866.710 141,073.919 ↓ 1.7 294,410 1

GroupAggregate (cost=2,653,970.83..2,722,981.99 rows=172,528 width=184) (actual time=133,163.230..141,073.919 rows=294,410 loops=1)

  • Group Key: (((date_trunc('month'::text, pipeline2.entrydate))::date)::text), pipeline2.taskid, pipeline2.projectid, pipeline2.userid, pipeline2.timeoffcodeid, pipeline2.breaktypeid, pipeline2.locationid, pipeline2.divisionid, pipeline2.costcenterid, pipeline2.servicecenterid
  • Buffers: shared hit=7024956 read=118342, temp read=147312 written=207730
4.          

CTE project_time

5. 2,016.519 8,768.046 ↓ 9.3 1,600,455 1

GroupAggregate (cost=344,370.64..389,227.84 rows=172,528 width=52) (actual time=5,291.108..8,768.046 rows=1,600,455 loops=1)

  • Group Key: allocation.entrydate, allocation.userid, allocation.projectid, allocation.taskid, allocation.timeoffcodeid, allocation.breaktypeid
  • Buffers: shared read=30450, temp read=8855 written=8855
6. 4,015.788 6,751.527 ↑ 1.0 1,725,277 1

Sort (cost=344,370.64..348,683.83 rows=1,725,277 width=52) (actual time=5,291.074..6,751.527 rows=1,725,277 loops=1)

  • Sort Key: allocation.entrydate, allocation.userid, allocation.projectid, allocation.taskid, allocation.timeoffcodeid, allocation.breaktypeid
  • Sort Method: external merge Disk: 70832kB
  • Buffers: shared read=30450, temp read=8855 written=8855
7. 2,735.739 2,735.739 ↑ 1.0 1,725,277 1

Seq Scan on dm_projecttimeallocation_facts allocation (cost=0.00..47,702.77 rows=1,725,277 width=52) (actual time=0.696..2,735.739 rows=1,725,277 loops=1)

  • Buffers: shared read=30450
8.          

CTE project_billing

9. 6,240.648 31,778.653 ↓ 406.5 1,600,253 1

HashAggregate (cost=24,375.48..24,424.69 rows=3,937 width=39) (actual time=30,204.463..31,778.653 rows=1,600,253 loops=1)

  • Group Key: bi.entrydate, bidm.userid, bidm.projectid, bidm.taskid
  • Buffers: shared hit=7024941 read=56222
10.          

Initplan (forHashAggregate)

11. 0.006 0.006 ↑ 1.0 1 1

Seq Scan on systeminformation (cost=0.00..1.01 rows=1 width=4) (actual time=0.005..0.006 rows=1 loops=1)

  • Buffers: shared hit=1
12. 3,519.858 25,537.999 ↓ 441.0 1,736,313 1

Nested Loop (cost=4,098.33..24,315.41 rows=3,937 width=39) (actual time=363.678..25,537.999 rows=1,736,313 loops=1)

  • Buffers: shared hit=7024941 read=56222
13. 1,366.373 6,391.324 ↓ 441.0 1,736,313 1

Nested Loop (cost=4,097.90..22,172.92 rows=3,937 width=43) (actual time=362.226..6,391.324 rows=1,736,313 loops=1)

  • Buffers: shared hit=105094 read=17513
14. 0.057 0.057 ↓ 7.0 7 1

Seq Scan on exchangerate (cost=0.00..1.61 rows=1 width=32) (actual time=0.031..0.057 rows=7 loops=1)

  • Filter: (variablecurrencyid = $1)
  • Rows Removed by Filter: 42
  • Buffers: shared hit=2
15. 3,918.649 5,024.894 ↓ 1.3 248,045 7

Bitmap Heap Scan on billingitem2 bi (cost=4,097.90..20,242.07 rows=192,924 width=27) (actual time=338.697..717.842 rows=248,045 loops=7)

  • Recheck Cond: ((exchangerate.effectivedate <= entrydate) AND (exchangerate.enddate >= entrydate))
  • Filter: (exchangerate.fixedcurrencyid = currencyid)
  • Rows Removed by Filter: 1488268
  • Heap Blocks: exact=89376
  • Buffers: shared hit=105092 read=17513
16. 1,106.245 1,106.245 ↓ 9.0 1,736,313 7

Bitmap Index Scan on ixbi2entrydate (cost=0.00..4,049.67 rows=192,924 width=0) (actual time=158.035..158.035 rows=1,736,313 loops=7)

  • Index Cond: ((exchangerate.effectivedate <= entrydate) AND (exchangerate.enddate >= entrydate))
  • Buffers: shared hit=28482 read=4747
17. 15,626.817 15,626.817 ↑ 1.0 1 1,736,313

Index Scan using uixbi2dm on billingitem2denormalizedmetadata bidm (cost=0.43..0.53 rows=1 width=28) (actual time=0.009..0.009 rows=1 loops=1,736,313)

  • Index Cond: (billingitemid = bi.id)
  • Buffers: shared hit=6919847 read=38709
18.          

CTE project_cost

19. 3,375.747 12,576.613 ↑ 1.0 1,725,279 1

Hash Left Join (cost=92,687.29..235,172.75 rows=1,725,279 width=143) (actual time=2,270.715..12,576.613 rows=1,725,279 loops=1)

  • Hash Cond: (userprojectroleratehistory.currencyid = exchangerate_1.fixedcurrencyid)
  • Join Filter: ((exchangerate_1.effectivedate <= dm_attendancetimeallocation_facts.entrydate) AND (exchangerate_1.enddate >= dm_attendancetimeallocation_facts.entrydate))
  • Buffers: shared hit=11 read=31669, temp read=10876 written=10813
20.          

Initplan (forHash Left Join)

21. 0.005 0.005 ↑ 1.0 1 1

Seq Scan on systeminformation systeminformation_1 (cost=0.00..1.01 rows=1 width=4) (actual time=0.004..0.005 rows=1 loops=1)

  • Buffers: shared hit=1
22. 1,993.681 9,200.385 ↑ 1.0 1,725,279 1

Hash Left Join (cost=92,684.66..189,353.39 rows=1,725,279 width=127) (actual time=2,270.189..9,200.385 rows=1,725,279 loops=1)

  • Hash Cond: (dm_attendancetimeallocation_facts.userid = userprojectroleratehistory.userid)
  • Join Filter: ((dm_attendancetimeallocation_facts.entrydate >= userprojectroleratehistory.effectivedate) AND (dm_attendancetimeallocation_facts.entrydate <= userprojectroleratehistory.enddate))
  • Buffers: shared hit=10 read=31668, temp read=10876 written=10813
23. 1,929.137 7,204.777 ↑ 1.0 1,725,279 1

Hash Left Join (cost=92,645.04..156,964.79 rows=1,725,279 width=120) (actual time=2,268.221..7,204.777 rows=1,725,279 loops=1)

  • Hash Cond: (dm_attendancetimeallocation_facts.taskid = task.id)
  • Buffers: shared hit=8 read=31659, temp read=10876 written=10813
24. 1,709.591 5,191.867 ↑ 1.0 1,725,279 1

Hash Left Join (cost=90,603.12..132,480.44 rows=1,725,279 width=116) (actual time=2,184.131..5,191.867 rows=1,725,279 loops=1)

  • Hash Cond: (dm_attendancetimeallocation_facts.projectid = project.id)
  • Buffers: shared hit=6 read=30558, temp read=10876 written=10813
25. 1,298.477 3,456.511 ↑ 1.0 1,725,279 1

Hash Right Join (cost=90,430.98..109,482.87 rows=1,725,279 width=112) (actual time=2,158.328..3,456.511 rows=1,725,279 loops=1)

  • Hash Cond: ((usercostnormalizationfactor.userid = dm_attendancetimeallocation_facts.userid) AND (usercostnormalizationfactor.entrydate = dm_attendancetimeallocation_facts.entrydate))
  • Buffers: shared hit=4 read=30446, temp read=10876 written=10813
26. 0.000 0.000 ↓ 0.0 0 1

Seq Scan on usercostnormalizationfactor (cost=0.00..15.80 rows=580 width=68) (actual time=0.000..0.000 rows=0 loops=1)

27. 1,036.733 2,158.034 ↑ 1.0 1,725,279 1

Hash (cost=47,702.79..47,702.79 rows=1,725,279 width=52) (actual time=2,158.034..2,158.034 rows=1,725,279 loops=1)

  • Buckets: 65536 Batches: 64 Memory Usage: 2206kB
  • Buffers: shared hit=4 read=30446, temp written=10750
28. 1,121.301 1,121.301 ↑ 1.0 1,725,279 1

Seq Scan on dm_attendancetimeallocation_facts (cost=0.00..47,702.79 rows=1,725,279 width=52) (actual time=0.684..1,121.301 rows=1,725,279 loops=1)

  • Buffers: shared hit=4 read=30446
29. 1.145 25.765 ↑ 1.0 2,584 1

Hash (cost=139.84..139.84 rows=2,584 width=8) (actual time=25.765..25.765 rows=2,584 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 123kB
  • Buffers: shared hit=2 read=112
30. 24.620 24.620 ↑ 1.0 2,584 1

Seq Scan on project (cost=0.00..139.84 rows=2,584 width=8) (actual time=0.006..24.620 rows=2,584 loops=1)

  • Buffers: shared hit=2 read=112
31. 23.630 83.773 ↑ 1.0 41,730 1

Hash (cost=1,520.30..1,520.30 rows=41,730 width=8) (actual time=83.773..83.773 rows=41,730 loops=1)

  • Buckets: 65536 Batches: 1 Memory Usage: 1980kB
  • Buffers: shared hit=2 read=1101
32. 60.143 60.143 ↑ 1.0 41,730 1

Seq Scan on task (cost=0.00..1,520.30 rows=41,730 width=8) (actual time=0.542..60.143 rows=41,730 loops=1)

  • Buffers: shared hit=2 read=1101
33. 0.680 1.927 ↑ 1.0 1,272 1

Hash (cost=23.72..23.72 rows=1,272 width=19) (actual time=1.927..1.927 rows=1,272 loops=1)

  • Buckets: 2048 Batches: 1 Memory Usage: 81kB
  • Buffers: shared hit=2 read=9
34. 1.247 1.247 ↑ 1.0 1,272 1

Seq Scan on userprojectroleratehistory (cost=0.00..23.72 rows=1,272 width=19) (actual time=0.009..1.247 rows=1,272 loops=1)

  • Buffers: shared hit=2 read=9
35. 0.006 0.476 ↓ 7.0 7 1

Hash (cost=1.61..1.61 rows=1 width=32) (actual time=0.476..0.476 rows=7 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 9kB
  • Buffers: shared hit=1 read=1
36. 0.470 0.470 ↓ 7.0 7 1

Seq Scan on exchangerate exchangerate_1 (cost=0.00..1.61 rows=1 width=32) (actual time=0.462..0.470 rows=7 loops=1)

  • Filter: (variablecurrencyid = $7)
  • Rows Removed by Filter: 42
  • Buffers: shared hit=1 read=1
37.          

CTE expense_cost

38. 0.002 0.005 ↓ 0.0 0 1

Nested Loop (cost=0.28..16.33 rows=1 width=60) (actual time=0.005..0.005 rows=0 loops=1)

  • Buffers: shared hit=1
39. 0.003 0.003 ↓ 0.0 0 1

Index Scan using ixex2approvalstatus on expense (cost=0.14..8.16 rows=1 width=8) (actual time=0.003..0.003 rows=0 loops=1)

  • Index Cond: (approvalstatus = 2)
  • Buffers: shared hit=1
40. 0.000 0.000 ↓ 0.0 0

Index Scan using ixeeexpenseid on expenseentry (cost=0.14..8.15 rows=1 width=60) (never executed)

  • Index Cond: (expenseid = expense.id)
  • Filter: (requestreimbursement AND (NOT billtoclient))
41.          

CTE pipeline1

42. 3,546.160 84,300.919 ↓ 2.0 3,446,114 1

Hash Full Join (cost=369,520.21..435,512.15 rows=1,725,279 width=188) (actual time=17,186.757..84,300.919 rows=3,446,114 loops=1)

  • Hash Cond: ((project_billing.taskid = expense_cost.taskid) AND (project_billing.projectid = expense_cost.projectid) AND (project_billing.userid = expense_cost.userid))
  • Join Filter: (expense_cost.entrydate = project_billing.entrydate)
  • Buffers: shared hit=7024953 read=118341, temp read=64715 written=84014
43. 3,197.036 80,754.753 ↓ 2.0 3,446,114 1

Merge Full Join (cost=369,520.17..403,163.12 rows=1,725,279 width=136) (actual time=17,186.719..80,754.753 rows=3,446,114 loops=1)

  • Merge Cond: ((project_cost.entrydate = project_time.entrydate) AND (project_cost.taskid = project_time.taskid) AND (project_cost.projectid = project_time.projectid) AND (project_cost.userid = project_time.userid) AND (project_cost.timeoffcodeid = project_time.timeoffcodeid) AND (project_cost.breaktypeid = project_time.breaktypeid))
  • Buffers: shared hit=7024952 read=118341, temp read=64715 written=84014
44. 4,816.304 19,212.737 ↑ 1.0 1,725,279 1

Sort (cost=319,378.67..323,691.86 rows=1,725,279 width=44) (actual time=17,186.713..19,212.737 rows=1,725,279 loops=1)

  • Sort Key: project_cost.entrydate, project_cost.taskid, project_cost.projectid, project_cost.userid, project_cost.timeoffcodeid, project_cost.breaktypeid
  • Sort Method: external merge Disk: 57320kB
  • Buffers: shared hit=11 read=31669, temp read=21564 written=28661
45. 14,396.433 14,396.433 ↑ 1.0 1,725,279 1

CTE Scan on project_cost (cost=0.00..34,505.58 rows=1,725,279 width=44) (actual time=2,270.719..14,396.433 rows=1,725,279 loops=1)

  • Buffers: shared hit=11 read=31669, temp read=10876 written=17973
46. 1,323.849 58,344.980 ↓ 10.0 1,720,835 1

Materialize (cost=50,141.50..51,004.14 rows=172,528 width=92) (actual time=55,651.892..58,344.980 rows=1,720,835 loops=1)

  • Buffers: shared hit=7024941 read=86672, temp read=43151 written=55353
47. 3,767.023 57,021.131 ↓ 10.0 1,720,835 1

Sort (cost=50,141.50..50,572.82 rows=172,528 width=92) (actual time=55,651.883..57,021.131 rows=1,720,835 loops=1)

  • Sort Key: project_time.entrydate, project_time.taskid, project_time.projectid, project_time.userid, project_time.timeoffcodeid, project_time.breaktypeid
  • Sort Method: external merge Disk: 96696kB
  • Buffers: shared hit=7024941 read=86672, temp read=43151 written=55353
48. 2,601.517 53,254.108 ↓ 10.0 1,720,835 1

Merge Full Join (cost=24,080.79..26,286.61 rows=172,528 width=92) (actual time=49,148.660..53,254.108 rows=1,720,835 loops=1)

  • Merge Cond: ((project_time.entrydate = project_billing.entrydate) AND (project_time.taskid = project_billing.taskid) AND (project_time.projectid = project_billing.projectid) AND (project_time.userid = project_billing.userid))
  • Buffers: shared hit=7024941 read=86672, temp read=31056 written=43258
49. 3,113.452 13,611.020 ↓ 9.3 1,600,455 1

Sort (cost=23,766.95..24,198.27 rows=172,528 width=44) (actual time=12,858.015..13,611.020 rows=1,600,455 loops=1)

  • Sort Key: project_time.entrydate, project_time.taskid, project_time.projectid, project_time.userid
  • Sort Method: external sort Disk: 53200kB
  • Buffers: shared read=30450, temp read=15505 written=22147
50. 10,497.568 10,497.568 ↓ 9.3 1,600,455 1

CTE Scan on project_time (cost=0.00..3,450.56 rows=172,528 width=44) (actual time=5,291.113..10,497.568 rows=1,600,455 loops=1)

  • Buffers: shared read=30450, temp read=8855 written=15497
51. 3,602.530 37,041.571 ↓ 406.5 1,600,253 1

Sort (cost=313.84..323.68 rows=3,937 width=48) (actual time=36,290.635..37,041.571 rows=1,600,253 loops=1)

  • Sort Key: project_billing.entrydate, project_billing.taskid, project_billing.projectid, project_billing.userid
  • Sort Method: external sort Disk: 50800kB
  • Buffers: shared hit=7024941 read=56222, temp read=15551 written=21111
52. 33,439.041 33,439.041 ↓ 406.5 1,600,253 1

CTE Scan on project_billing (cost=0.00..78.74 rows=3,937 width=48) (actual time=30,204.471..33,439.041 rows=1,600,253 loops=1)

  • Buffers: shared hit=7024941 read=56222, temp written=5560
53. 0.001 0.006 ↓ 0.0 0 1

Hash (cost=0.02..0.02 rows=1 width=52) (actual time=0.006..0.006 rows=0 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 8kB
  • Buffers: shared hit=1
54. 0.005 0.005 ↓ 0.0 0 1

CTE Scan on expense_cost (cost=0.00..0.02 rows=1 width=52) (actual time=0.005..0.005 rows=0 loops=1)

  • Buffers: shared hit=1
55.          

CTE pipeline2

56. 2,704.130 107,732.470 ↓ 2.0 3,446,114 1

Merge Left Join (cost=425,528.15..1,032,491.61 rows=1,725,279 width=184) (actual time=93,286.112..107,732.470 rows=3,446,114 loops=1)

  • Merge Cond: (pipeline1.userid = userservicecenter.userid)
  • Join Filter: ((userservicecenter.startdate <= pipeline1.entrydate) AND (userservicecenter.enddate >= pipeline1.entrydate))
  • Buffers: shared hit=7024956 read=118342, temp read=104667 written=144519
57. 2,672.161 105,028.326 ↓ 2.0 3,446,114 1

Merge Left Join (cost=425,528.00..833,160.79 rows=1,725,279 width=168) (actual time=93,286.094..105,028.326 rows=3,446,114 loops=1)

  • Merge Cond: (pipeline1.userid = usercostcenter.userid)
  • Join Filter: ((usercostcenter.startdate <= pipeline1.entrydate) AND (usercostcenter.enddate >= pipeline1.entrydate))
  • Buffers: shared hit=7024955 read=118342, temp read=104667 written=144519
58. 2,657.256 102,356.158 ↓ 2.0 3,446,114 1

Merge Left Join (cost=425,527.85..633,829.97 rows=1,725,279 width=152) (actual time=93,286.083..102,356.158 rows=3,446,114 loops=1)

  • Merge Cond: (pipeline1.userid = userlocation.userid)
  • Join Filter: ((userlocation.startdate <= pipeline1.entrydate) AND (userlocation.enddate >= pipeline1.entrydate))
  • Buffers: shared hit=7024954 read=118342, temp read=104667 written=144519
59. 3,082.412 99,698.884 ↓ 2.0 3,446,114 1

Merge Left Join (cost=425,527.70..434,499.15 rows=1,725,279 width=136) (actual time=93,286.063..99,698.884 rows=3,446,114 loops=1)

  • Merge Cond: (pipeline1.userid = userdivision.userid)
  • Join Filter: ((userdivision.startdate <= pipeline1.entrydate) AND (userdivision.enddate >= pipeline1.entrydate))
  • Rows Removed by Join Filter: 6710
  • Buffers: shared hit=7024953 read=118342, temp read=104667 written=144519
60. 8,630.595 96,590.815 ↓ 2.0 3,446,114 1

Sort (cost=425,526.67..429,839.86 rows=1,725,279 width=120) (actual time=93,265.800..96,590.815 rows=3,446,114 loops=1)

  • Sort Key: pipeline1.userid
  • Sort Method: external merge Disk: 164600kB
  • Buffers: shared hit=7024953 read=118341, temp read=104667 written=144519
61. 87,960.220 87,960.220 ↓ 2.0 3,446,114 1

CTE Scan on pipeline1 (cost=0.00..34,505.58 rows=1,725,279 width=120) (actual time=17,186.761..87,960.220 rows=3,446,114 loops=1)

  • Buffers: shared hit=7024953 read=118341, temp read=64715 written=104567
62. 5.440 25.657 ↓ 3,355.5 6,711 1

Sort (cost=1.03..1.03 rows=2 width=28) (actual time=20.253..25.657 rows=6,711 loops=1)

  • Sort Key: userdivision.userid
  • Sort Method: quicksort Memory: 25kB
  • Buffers: shared read=1
63. 20.217 20.217 ↑ 1.0 2 1

Seq Scan on userdivision (cost=0.00..1.02 rows=2 width=28) (actual time=20.214..20.217 rows=2 loops=1)

  • Buffers: shared read=1
64. 0.006 0.018 ↓ 0.0 0 1

Materialize (cost=0.15..63.93 rows=1,130 width=28) (actual time=0.018..0.018 rows=0 loops=1)

  • Buffers: shared hit=1
65. 0.012 0.012 ↓ 0.0 0 1

Index Only Scan using ix4ul_userlocationstartend on userlocation (cost=0.15..61.10 rows=1,130 width=28) (actual time=0.012..0.012 rows=0 loops=1)

  • Heap Fetches: 0
  • Buffers: shared hit=1
66. 0.003 0.007 ↓ 0.0 0 1

Materialize (cost=0.15..63.93 rows=1,130 width=28) (actual time=0.007..0.007 rows=0 loops=1)

  • Buffers: shared hit=1
67. 0.004 0.004 ↓ 0.0 0 1

Index Only Scan using ix4ucc_usercostcenterstartend on usercostcenter (cost=0.15..61.10 rows=1,130 width=28) (actual time=0.004..0.004 rows=0 loops=1)

  • Heap Fetches: 0
  • Buffers: shared hit=1
68. 0.011 0.014 ↓ 0.0 0 1

Materialize (cost=0.15..63.93 rows=1,130 width=28) (actual time=0.014..0.014 rows=0 loops=1)

  • Buffers: shared hit=1
69. 0.003 0.003 ↓ 0.0 0 1

Index Only Scan using ix4usc_userservicecenterstartend on userservicecenter (cost=0.15..61.10 rows=1,130 width=28) (actual time=0.003..0.003 rows=0 loops=1)

  • Heap Fetches: 0
  • Buffers: shared hit=1
70. 24,093.316 138,207.209 ↓ 2.0 3,446,114 1

Sort (cost=537,125.46..541,438.65 rows=1,725,279 width=184) (actual time=133,163.137..138,207.209 rows=3,446,114 loops=1)

  • Sort Key: (((date_trunc('month'::text, pipeline2.entrydate))::date)::text), pipeline2.taskid, pipeline2.projectid, pipeline2.userid, pipeline2.timeoffcodeid, pipeline2.breaktypeid, pipeline2.locationid, pipeline2.divisionid, pipeline2.costcenterid, pipeline2.servicecenterid
  • Sort Method: external merge Disk: 178712kB
  • Buffers: shared hit=7024956 read=118342, temp read=147312 written=207730
71. 114,113.893 114,113.893 ↓ 2.0 3,446,114 1

CTE Scan on pipeline2 (cost=0.00..51,758.37 rows=1,725,279 width=184) (actual time=93,286.141..114,113.893 rows=3,446,114 loops=1)

  • Buffers: shared hit=7024956 read=118342, temp read=104667 written=165085