explain.depesz.com

PostgreSQL's explain analyze made readable

Result: nFI6

Settings
# exclusive inclusive rows x rows loops node
1. 1.953 130,487.220 ↑ 87.6 129 1

GroupAggregate (cost=13,101,662.77..13,104,596.68 rows=11,302 width=170) (actual time=130,485.066..130,487.220 rows=129 loops=1)

  • Group Key: te.trader_id, te.fund_abbrev, te.ins_iid, te.instrument_type_id, te.currency_code, te.name, te.local_code, te.price_factor, te.settlement
2.          

Initplan (for GroupAggregate)

3. 0.003 0.009 ↑ 1.0 1 1

Aggregate (cost=1.01..1.02 rows=1 width=32) (actual time=0.009..0.009 rows=1 loops=1)

4. 0.006 0.006 ↑ 1.0 1 1

Seq Scan on citco_client (cost=0.00..1.01 rows=1 width=9) (actual time=0.006..0.006 rows=1 loops=1)

5. 7.387 130,485.258 ↑ 19.5 5,154 1

Sort (cost=13,101,661.75..13,101,913.05 rows=100,523 width=75) (actual time=130,485.013..130,485.258 rows=5,154 loops=1)

  • Sort Key: te.trader_id, te.fund_abbrev, te.ins_iid, te.instrument_type_id, te.currency_code, te.name, te.local_code, te.price_factor, te.settlement
  • Sort Method: quicksort Memory: 917kB
6. 6.878 130,477.871 ↑ 19.5 5,154 1

Gather (cost=1,000.00..13,088,840.21 rows=100,523 width=75) (actual time=116,588.784..130,477.871 rows=5,154 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
7. 0.224 130,470.993 ↑ 24.4 1,718 3 / 3

Append (cost=0.00..13,077,787.91 rows=41,897 width=75) (actual time=116,153.896..130,470.993 rows=1,718 loops=3)

8. 0.001 0.001 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext te (cost=0.00..0.00 rows=1 width=526) (actual time=0.001..0.001 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
9. 109.835 109.835 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2010 te_1 (cost=0.00..57,794.56 rows=1 width=76) (actual time=109.835..109.835 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
  • Rows Removed by Filter: 287,871
10. 8,843.024 8,843.024 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2011 te_2 (cost=0.00..986,334.85 rows=5 width=76) (actual time=8,843.024..8,843.024 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
  • Rows Removed by Filter: 4,914,911
11. 14,031.800 14,031.800 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2012 te_3 (cost=0.00..1,331,841.78 rows=5 width=76) (actual time=14,031.800..14,031.800 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
  • Rows Removed by Filter: 6,566,569
12. 18,822.971 18,822.971 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2013 te_4 (cost=0.00..1,750,851.49 rows=5 width=76) (actual time=18,822.971..18,822.971 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
  • Rows Removed by Filter: 8,597,397
13. 17,629.295 17,629.295 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2014 te_5 (cost=0.00..1,641,603.36 rows=6 width=77) (actual time=17,629.295..17,629.295 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
  • Rows Removed by Filter: 8,083,698
14. 15,268.746 15,268.746 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2015 te_6 (cost=0.00..1,417,319.55 rows=7 width=75) (actual time=15,268.746..15,268.746 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
  • Rows Removed by Filter: 6,893,049
15. 16,297.796 16,297.796 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2016 te_7 (cost=0.00..1,510,461.12 rows=6 width=75) (actual time=16,297.796..16,297.796 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
  • Rows Removed by Filter: 7,301,474
16. 17,113.471 17,113.471 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2017 te_8 (cost=0.00..1,584,822.24 rows=7 width=74) (actual time=17,113.471..17,113.471 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
  • Rows Removed by Filter: 7,654,579
17. 18,325.940 18,325.940 ↑ 22.6 1,718 3 / 3

Parallel Seq Scan on trade_ext_2018 te_9 (cost=0.00..1,701,593.58 rows=38,762 width=75) (actual time=8,036.943..18,325.940 rows=1,718 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
  • Rows Removed by Filter: 8,268,675
18. 3,222.864 3,232.824 ↓ 0.0 0 3 / 3

Parallel Bitmap Heap Scan on trade_ext_2019 te_10 (cost=162.86..921,612.23 rows=2,836 width=73) (actual time=3,232.824..3,232.824 rows=0 loops=3)

  • Recheck Cond: ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval))
  • Rows Removed by Index Recheck: 4,748,435
  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
  • Rows Removed by Filter: 123,233
  • Heap Blocks: lossy=263,936
19. 9.960 9.960 ↓ 17.3 7,901,440 1 / 3

Bitmap Index Scan on trade_ext_2019_time_brin_idx (cost=0.00..161.16 rows=456,566 width=0) (actual time=29.879..29.879 rows=7,901,440 loops=1)

  • Index Cond: ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval))
20. 714.615 716.767 ↓ 0.0 0 3 / 3

Parallel Bitmap Heap Scan on trade_ext_2020 te_11 (cost=79.78..144,725.22 rows=226 width=73) (actual time=716.767..716.767 rows=0 loops=3)

  • Recheck Cond: ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval))
  • Rows Removed by Index Recheck: 1,077,750
  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
  • Rows Removed by Filter: 9,351
  • Heap Blocks: lossy=58,922
21. 2.152 2.152 ↓ 37.5 1,767,680 1 / 3

Bitmap Index Scan on trade_ext_2020_time_brin_idx (cost=0.00..79.65 rows=47,134 width=0) (actual time=6.455..6.456 rows=1,767,680 loops=1)

  • Index Cond: ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval))
22. 0.001 0.001 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2021 te_12 (cost=0.00..10.82 rows=1 width=526) (actual time=0.001..0.001 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
23. 0.000 0.000 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2022 te_13 (cost=0.00..10.82 rows=1 width=526) (actual time=0.000..0.000 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
24. 0.001 0.001 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2023 te_14 (cost=0.00..10.82 rows=1 width=526) (actual time=0.001..0.001 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
25. 0.001 0.001 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2024 te_15 (cost=0.00..10.82 rows=1 width=526) (actual time=0.000..0.001 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
26. 0.000 0.000 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2025 te_16 (cost=0.00..10.82 rows=1 width=526) (actual time=0.000..0.000 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
27. 0.000 0.000 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2026 te_17 (cost=0.00..10.82 rows=1 width=526) (actual time=0.000..0.000 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
28. 0.000 0.000 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2027 te_18 (cost=0.00..10.82 rows=1 width=526) (actual time=0.000..0.000 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
29. 0.000 0.000 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2028 te_19 (cost=0.00..10.82 rows=1 width=526) (actual time=0.000..0.000 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
30. 0.000 0.000 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2029 te_20 (cost=0.00..10.82 rows=1 width=526) (actual time=0.000..0.000 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
31. 0.000 0.000 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2030 te_21 (cost=0.00..10.82 rows=1 width=526) (actual time=0.000..0.000 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
32. 0.000 0.000 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2031 te_22 (cost=0.00..10.82 rows=1 width=526) (actual time=0.000..0.000 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
33. 0.000 0.000 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2032 te_23 (cost=0.00..10.82 rows=1 width=526) (actual time=0.000..0.000 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
34. 0.000 0.000 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2033 te_24 (cost=0.00..10.82 rows=1 width=526) (actual time=0.000..0.000 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
35. 0.000 0.000 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2034 te_25 (cost=0.00..10.82 rows=1 width=526) (actual time=0.000..0.000 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
36. 0.000 0.000 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2035 te_26 (cost=0.00..10.82 rows=1 width=526) (actual time=0.000..0.000 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
37. 78.092 78.214 ↓ 0.0 0 3 / 3

Parallel Bitmap Heap Scan on trade_ext_2036 te_27 (cost=16.28..28,630.09 rows=11 width=71) (actual time=78.214..78.214 rows=0 loops=3)

  • Recheck Cond: ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval))
  • Rows Removed by Index Recheck: 114,456
  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
  • Rows Removed by Filter: 3,135
  • Heap Blocks: lossy=6,603
38. 0.122 0.122 ↓ 17.8 198,400 1 / 3

Bitmap Index Scan on trade_ext_2036_time_brin_idx (cost=0.00..16.28 rows=11,159 width=0) (actual time=0.366..0.366 rows=198,400 loops=1)

  • Index Cond: ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval))
39. 0.001 0.001 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2037 te_28 (cost=0.00..10.82 rows=1 width=526) (actual time=0.001..0.001 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
40. 0.000 0.000 ↓ 0.0 0 3 / 3

Parallel Seq Scan on trade_ext_2038 te_29 (cost=0.00..10.82 rows=1 width=526) (actual time=0.000..0.000 rows=0 loops=3)

  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND (settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
41. 0.076 0.076 ↓ 0.0 0 3 / 3

Parallel Index Scan using trade_ext_2009_settlement_time_idx on trade_ext_2009 te_30 (cost=0.30..6.69 rows=1 width=75) (actual time=0.076..0.076 rows=0 loops=3)

  • Index Cond: ((settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)))
  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))
42. 0.005 0.005 ↓ 0.0 0 3 / 3

Parallel Index Scan using trade_ext_2008_settlement_time_idx on trade_ext_2008 te_31 (cost=0.29..7.15 rows=1 width=76) (actual time=0.005..0.005 rows=0 loops=3)

  • Index Cond: ((settlement > to_date('20180801'::text, 'YYYYMMDD'::text)) AND ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval)))
  • Filter: ((instrument_type_id = ANY ('{4,71}'::integer[])) AND ((ps_time)::date > (to_date('20180801'::text, 'YYYYMMDD'::text) - '06:00:00'::interval)))