explain.depesz.com

PostgreSQL's explain analyze made readable

Result: l5G5

Settings
# exclusive inclusive rows x rows loops node
1. 0.000 758.245 ↑ 1.2 45 1

Finalize GroupAggregate (cost=108,337.02..108,351.37 rows=53 width=58) (actual time=758.076..758.245 rows=45 loops=1)

  • Group Key: f.abbrev, f.name, f.fund_currency
2. 13.724 762.898 ↑ 1.2 90 1

Gather Merge (cost=108,337.02..108,349.38 rows=106 width=58) (actual time=758.062..762.898 rows=90 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
3. 0.081 749.174 ↑ 1.8 30 3 / 3

Sort (cost=107,336.99..107,337.12 rows=53 width=58) (actual time=749.172..749.174 rows=30 loops=3)

  • Sort Key: f.abbrev, f.name, f.fund_currency
  • Sort Method: quicksort Memory: 29kB
  • Worker 0: Sort Method: quicksort Memory: 28kB
  • Worker 1: Sort Method: quicksort Memory: 30kB
4. 77.730 749.093 ↑ 1.8 30 3 / 3

Partial HashAggregate (cost=107,334.81..107,335.47 rows=53 width=58) (actual time=749.066..749.093 rows=30 loops=3)

  • Group Key: f.abbrev, f.name, f.fund_currency
5. 44.845 671.363 ↑ 1.3 30,440 3 / 3

Hash Join (cost=66.58..106,949.57 rows=38,524 width=31) (actual time=507.701..671.363 rows=30,440 loops=3)

  • Hash Cond: ((b.fund_id = f_1.fund_id) AND (b.client_id = f_1.client_id))
6. 625.821 626.256 ↑ 1.3 30,440 3 / 3

Parallel Bitmap Heap Scan on balance b (cost=55.78..106,259.29 rows=39,251 width=13) (actual time=507.395..626.256 rows=30,440 loops=3)

  • Recheck Cond: ((anum < 30000) AND (value_dt = to_date('2018-07-31'::text, 'YYYY-MM-DD'::text)))
  • Rows Removed by Index Recheck: 442,727
  • Heap Blocks: lossy=3,484
7. 0.435 0.435 ↓ 1.4 134,400 1 / 3

Bitmap Index Scan on idx_balance_test_brin (cost=0.00..32.23 rows=95,484 width=0) (actual time=1.305..1.306 rows=134,400 loops=1)

  • Index Cond: ((anum < 30000) AND (value_dt = to_date('2018-07-31'::text, 'YYYY-MM-DD'::text)))
8. 0.023 0.262 ↓ 1.0 53 3 / 3

Hash (cost=10.02..10.02 rows=52 width=38) (actual time=0.261..0.262 rows=53 loops=3)

  • Buckets: 1,024 Batches: 1 Memory Usage: 12kB
9. 0.036 0.239 ↓ 1.0 53 3 / 3

Hash Join (cost=6.73..10.02 rows=52 width=38) (actual time=0.168..0.239 rows=53 loops=3)

  • Hash Cond: ((ag.tgroup)::text = (f.abbrev)::text)
10. 0.034 0.149 ↑ 1.0 53 3 / 3

Hash Join (cost=4.54..7.10 rows=53 width=17) (actual time=0.100..0.149 rows=53 loops=3)

  • Hash Cond: ((a.agroup)::text = (ag.agroup)::text)
11. 0.043 0.080 ↑ 1.0 53 3 / 3

Hash Join (cost=2.33..4.16 rows=53 width=22) (actual time=0.050..0.080 rows=53 loops=3)

  • Hash Cond: (((a.tgroup)::text = (f_1.abbrev)::text) AND (a.client_id = f_1.client_id))
12. 0.007 0.007 ↑ 1.0 54 3 / 3

Seq Scan on agroups a (cost=0.00..1.54 rows=54 width=19) (actual time=0.001..0.007 rows=54 loops=3)

13. 0.019 0.030 ↑ 1.0 53 3 / 3

Hash (cost=1.53..1.53 rows=53 width=13) (actual time=0.030..0.030 rows=53 loops=3)

  • Buckets: 1,024 Batches: 1 Memory Usage: 11kB
14. 0.011 0.011 ↑ 1.0 53 3 / 3

Seq Scan on fund f_1 (cost=0.00..1.53 rows=53 width=13) (actual time=0.002..0.011 rows=53 loops=3)

15. 0.019 0.035 ↑ 1.0 54 3 / 3

Hash (cost=1.54..1.54 rows=54 width=15) (actual time=0.035..0.035 rows=54 loops=3)

  • Buckets: 1,024 Batches: 1 Memory Usage: 11kB
16. 0.016 0.016 ↑ 1.0 54 3 / 3

Seq Scan on agroups ag (cost=0.00..1.54 rows=54 width=15) (actual time=0.005..0.016 rows=54 loops=3)

17. 0.022 0.054 ↑ 1.0 53 3 / 3

Hash (cost=1.53..1.53 rows=53 width=26) (actual time=0.054..0.054 rows=53 loops=3)

  • Buckets: 1,024 Batches: 1 Memory Usage: 12kB
18. 0.032 0.032 ↑ 1.0 53 3 / 3

Seq Scan on fund f (cost=0.00..1.53 rows=53 width=26) (actual time=0.014..0.032 rows=53 loops=3)

Planning time : 1.608 ms
Execution time : 763.898 ms