explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 3sRd

Settings
# exclusive inclusive rows x rows loops node
1. 1.883 184,903.162 ↑ 89.0 129 1

GroupAggregate (cost=13,101,662.77..13,104,599.35 rows=11,480 width=170) (actual time=184,901.082..184,903.162 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.010 ↑ 1.0 1 1

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

4. 0.007 0.007 ↑ 1.0 1 1

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

5. 8.015 184,901.269 ↑ 19.5 5,154 1

Sort (cost=13,101,661.75..13,101,913.05 rows=100,523 width=75) (actual time=184,901.030..184,901.269 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.985 184,893.254 ↑ 19.5 5,154 1

Gather (cost=1,000.00..13,088,840.21 rows=100,523 width=75) (actual time=114,577.543..184,893.254 rows=5,154 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
7. 0.240 184,886.269 ↑ 24.4 1,718 3 / 3

Append (cost=0.00..13,077,787.91 rows=41,897 width=75) (actual time=114,128.101..184,886.269 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.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)))
9. 116.636 116.636 ↓ 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=116.636..116.636 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. 2,480.342 2,480.342 ↓ 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=2,480.342..2,480.342 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. 3,323.880 3,323.880 ↓ 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=3,323.880..3,323.880 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. 17,843.126 17,843.126 ↓ 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=17,843.126..17,843.126 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,588.648 17,588.648 ↓ 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,588.648..17,588.648 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. 22,604.638 22,604.638 ↓ 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=22,604.638..22,604.638 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. 19,439.855 19,439.855 ↓ 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=19,439.855..19,439.855 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. 19,104.614 19,104.614 ↓ 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=19,104.614..19,104.614 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,281.170 18,281.170 ↑ 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=11,626.351..18,281.170 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. 47,996.000 48,008.936 ↓ 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=48,008.936..48,008.936 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,230
19. 12.936 12.936 ↓ 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=38.807..38.807 rows=7,901,440 loops=1)

  • Index Cond: ("time" <= (to_date('20180801'::text, 'YYYYMMDD'::text) + '18:00:00'::interval))
20. 15,762.764 15,766.916 ↓ 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=15,766.916..15,766.916 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,148
21. 4.152 4.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=12.456..12.457 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.000 0.000 ↓ 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.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)))
25. 0.000 0.000 ↓ 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.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)))
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. 325.228 325.722 ↓ 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=325.722..325.722 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,375
38. 0.494 0.494 ↓ 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=1.483..1.483 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.001 0.001 ↓ 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.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)))
41. 0.605 0.605 ↓ 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.604..0.605 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.937 0.937 ↓ 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.937..0.937 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)))