explain.depesz.com

PostgreSQL's explain analyze made readable

Result: T7sL

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

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

  • Group Key: f.abbrev, f.name, f.fund_currency
2. 47.902 1,098.146 ↑ 1.2 86 1

Gather Merge (cost=108,337.02..108,349.38 rows=106 width=58) (actual time=1,097.701..1,098.146 rows=86 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
3. 0.444 1,050.244 ↑ 1.8 29 3 / 3

Sort (cost=107,336.99..107,337.12 rows=53 width=58) (actual time=1,050.241..1,050.244 rows=29 loops=3)

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

Partial HashAggregate (cost=107,334.81..107,335.47 rows=53 width=58) (actual time=1,049.774..1,049.800 rows=29 loops=3)

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

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

  • Hash Cond: ((b.fund_id = f_1.fund_id) AND (b.client_id = f_1.client_id))
6. 936.867 937.710 ↑ 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=823.225..937.710 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,873
7. 0.843 0.843 ↓ 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=2.528..2.528 rows=134,400 loops=1)

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

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

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

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

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

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

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

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

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

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

13. 0.020 0.032 ↑ 1.0 53 3 / 3

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

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

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

15. 0.019 0.036 ↑ 1.0 54 3 / 3

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

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

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

17. 0.025 0.073 ↑ 1.0 53 3 / 3

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

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

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