Re: How should I specify work_mem/max_worker_processes if I want to do big queries now and then? - Mailing list pgsql-general

From James(王旭)
Subject Re: How should I specify work_mem/max_worker_processes if I want to do big queries now and then?
Date
Msg-id tencent_7D928F1D07BB9EF40A19F3D3@qq.com
Whole thread Raw
In response to Re: How should I specify work_mem/max_worker_processes if I want to do big queries now and then?  ("James(王旭)" <wangxu@gu360.com>)
Responses Re: How should I specify work_mem/max_worker_processes if I want todo big queries now and then?  (Imre Samu <pella.samu@gmail.com>)
List pgsql-general

This is the schema:

CREATE TABLE public.quotes (
    uuid character varying(45) NOT NULL,
    symbol_id smallint NOT NULL,
    symbol character varying(32) NOT NULL,
    p_open real NOT NULL,
    p_high real NOT NULL,
    p_low real NOT NULL,
    p_close real NOT NULL,
    amount numeric(20,2) NOT NULL,
    volume numeric(20,2) NOT NULL,
    pubdate timestamp with time zone NOT NULL,
    chunk_id smallint NOT NULL
)
PARTITION BY HASH (symbol_id);
ALTER TABLE ONLY public.quotes
    ADD CONSTRAINT quotes_pkey PRIMARY KEY (symbol_id, uuid);
CREATE INDEX idx_201911 ON ONLY public.quotes USING btree (symbol, chunk_id) WHERE (chunk_id >= 2595);

====================

This is explain:

EXPLAIN (ANALYZE, BUFFERS)  select p_open,p_close,p_high,p_low from quotes where symbol='MSFT' and chunk_id >= 2595;
                                                                                 QUERY PLAN

-------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------
 Append  (cost=0.42..22961.77 rows=12203 width=16) (actual time=1091.462..19600.454 rows=13286 loops=1)
   Buffers: shared hit=9 read=10065
   ->  Index Scan using quotes_0_symbol_chunk_id_idx1 on quotes_0  (cost=0.42..8.44 rows=1 width=16) (act
ual time=0.295..0.295 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared hit=2 read=1
   ->  Index Scan using quotes_1_symbol_chunk_id_idx1 on quotes_1  (cost=0.42..8.44 rows=1 width=16) (act
ual time=0.137..0.137 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared hit=2 read=1
   ->  Index Scan using quotes_2_symbol_chunk_id_idx1 on quotes_2  (cost=0.42..8.44 rows=1 width=16) (act
ual time=0.117..0.117 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared hit=2 read=1
   ->  Index Scan using quotes_3_symbol_chunk_id_idx1 on quotes_3  (cost=0.42..8.44 rows=1 width=16) (act
ual time=0.072..0.072 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared hit=3
   ->  Index Scan using quotes_4_symbol_chunk_id_idx1 on quotes_4  (cost=0.42..8.43 rows=1 width=16) (act
ual time=48.475..48.475 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_5_symbol_chunk_id_idx1 on quotes_5  (cost=0.42..8.44 rows=1 width=16) (act
ual time=45.995..45.995 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_6_symbol_chunk_id_idx1 on quotes_6  (cost=0.42..8.44 rows=1 width=16) (act
ual time=23.474..23.474 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_7_symbol_chunk_id_idx1 on quotes_7  (cost=0.42..8.44 rows=1 width=16) (act
ual time=67.030..67.030 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_8_symbol_chunk_id_idx1 on quotes_8  (cost=0.42..8.44 rows=1 width=16) (act
ual time=16.230..16.230 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_9_symbol_chunk_id_idx1 on quotes_9  (cost=0.42..8.44 rows=1 width=16) (act
ual time=24.758..24.758 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_10_symbol_chunk_id_idx1 on quotes_10  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=89.762..89.762 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_11_symbol_chunk_id_idx1 on quotes_11  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=54.779..54.779 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_12_symbol_chunk_id_idx1 on quotes_12  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=19.391..19.391 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=4
   ->  Index Scan using quotes_13_symbol_chunk_id_idx1 on quotes_13  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=98.137..98.137 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_14_symbol_chunk_id_idx1 on quotes_14  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=33.148..33.148 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_15_symbol_chunk_id_idx1 on quotes_15  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=12.973..12.973 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_16_symbol_chunk_id_idx1 on quotes_16  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=20.718..20.718 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_17_symbol_chunk_id_idx1 on quotes_17  (cost=0.42..8.43 rows=1 width=16) (a
ctual time=59.091..59.091 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_18_symbol_chunk_id_idx1 on quotes_18  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=23.220..23.220 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_19_symbol_chunk_id_idx1 on quotes_19  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=8.963..8.963 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_20_symbol_chunk_id_idx1 on quotes_20  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=7.969..7.969 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_21_symbol_chunk_id_idx1 on quotes_21  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=60.775..60.775 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_22_symbol_chunk_id_idx1 on quotes_22  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=42.488..42.488 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_23_symbol_chunk_id_idx1 on quotes_23  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=46.778..46.778 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_24_symbol_chunk_id_idx1 on quotes_24  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=19.818..19.818 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_25_symbol_chunk_id_idx1 on quotes_25  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=18.332..18.332 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_26_symbol_chunk_id_idx1 on quotes_26  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=25.530..25.530 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_27_symbol_chunk_id_idx1 on quotes_27  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=17.795..17.795 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_28_symbol_chunk_id_idx1 on quotes_28  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=34.632..34.632 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_29_symbol_chunk_id_idx1 on quotes_29  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=27.877..27.877 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_30_symbol_chunk_id_idx1 on quotes_30  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=61.241..61.241 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_31_symbol_chunk_id_idx1 on quotes_31  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=19.481..19.481 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_32_symbol_chunk_id_idx1 on quotes_32  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=11.156..11.156 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_33_symbol_chunk_id_idx1 on quotes_33  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=12.092..12.092 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Bitmap Heap Scan on quotes_34  (cost=227.44..21221.83 rows=12004 width=16) (actual time=38.646..6055.598 rows
=13286 loops=1)
         Recheck Cond: (((symbol)::text = 'MSFT'::text) AND (chunk_id >= 2595))
         Heap Blocks: exact=9422
         Buffers: shared read=9476
         ->  Bitmap Index Scan on quotes_34_symbol_chunk_id_idx1  (cost=0.00..224.44 rows=12004 width=0) (actual tim
e=32.810..32.810 rows=13286 loops=1)
               Index Cond: ((symbol)::text = 'MSFT'::text)
               Buffers: shared read=54
   ->  Index Scan using quotes_35_symbol_chunk_id_idx1 on quotes_35  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=13.357..13.357 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_36_symbol_chunk_id_idx1 on quotes_36  (cost=0.42..8.43 rows=1 width=16) (a
ctual time=11.554..11.554 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_37_symbol_chunk_id_idx1 on quotes_37  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=14.527..14.527 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_38_symbol_chunk_id_idx1 on quotes_38  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=21.491..21.491 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_39_symbol_chunk_id_idx1 on quotes_39  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=38.924..38.924 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_40_symbol_chunk_id_idx1 on quotes_40  (cost=0.42..8.43 rows=1 width=16) (a
ctual time=123.119..123.119 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_41_symbol_chunk_id_idx1 on quotes_41  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=54.460..54.460 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_42_symbol_chunk_id_idx1 on quotes_42  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=142.491..142.491 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_43_symbol_chunk_id_idx1 on quotes_43  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=20.998..20.999 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_44_symbol_chunk_id_idx1 on quotes_44  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=315.145..315.145 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_45_symbol_chunk_id_idx1 on quotes_45  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=231.026..231.026 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_46_symbol_chunk_id_idx1 on quotes_46  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=34.457..34.457 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_47_symbol_chunk_id_idx1 on quotes_47  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=31.663..31.663 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_48_symbol_chunk_id_idx1 on quotes_48  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=19.256..19.256 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_49_symbol_chunk_id_idx1 on quotes_49  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=126.794..126.794 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_50_symbol_chunk_id_idx1 on quotes_50  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=25.642..25.642 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_51_symbol_chunk_id_idx1 on quotes_51  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=24.095..24.095 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_52_symbol_chunk_id_idx1 on quotes_52  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=24.960..24.960 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_53_symbol_chunk_id_idx1 on quotes_53  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=140.896..140.896 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_54_symbol_chunk_id_idx1 on quotes_54  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=23.073..23.073 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_55_symbol_chunk_id_idx1 on quotes_55  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=29.658..29.658 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_56_symbol_chunk_id_idx1 on quotes_56  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=19.207..19.207 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_57_symbol_chunk_id_idx1 on quotes_57  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=13.298..13.298 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_58_symbol_chunk_id_idx1 on quotes_58  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=18.658..18.658 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_59_symbol_chunk_id_idx1 on quotes_59  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=17.757..17.757 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_60_symbol_chunk_id_idx1 on quotes_60  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=175.472..175.472 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_61_symbol_chunk_id_idx1 on quotes_61  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=66.575..66.575 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_62_symbol_chunk_id_idx1 on quotes_62  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=32.085..32.085 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_63_symbol_chunk_id_idx1 on quotes_63  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=59.620..59.620 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_64_symbol_chunk_id_idx1 on quotes_64  (cost=0.42..8.43 rows=1 width=16) (a
ctual time=13.146..13.146 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_65_symbol_chunk_id_idx1 on quotes_65  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=493.484..493.484 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_66_symbol_chunk_id_idx1 on quotes_66  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=183.810..183.810 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_67_symbol_chunk_id_idx1 on quotes_67  (cost=0.42..8.43 rows=1 width=16) (a
ctual time=17.859..17.859 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_68_symbol_chunk_id_idx1 on quotes_68  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=14.211..14.211 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_69_symbol_chunk_id_idx1 on quotes_69  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=25.271..25.271 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_70_symbol_chunk_id_idx1 on quotes_70  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=165.171..165.171 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_71_symbol_chunk_id_idx1 on quotes_71  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=28.787..28.787 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_72_symbol_chunk_id_idx1 on quotes_72  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=26.529..26.529 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_73_symbol_chunk_id_idx1 on quotes_73  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=28.887..28.887 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_74_symbol_chunk_id_idx1 on quotes_74  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=52.311..52.311 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_75_symbol_chunk_id_idx1 on quotes_75  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=26.548..26.548 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_76_symbol_chunk_id_idx1 on quotes_76  (cost=0.42..8.43 rows=1 width=16) (a
ctual time=7.955..7.955 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_77_symbol_chunk_id_idx1 on quotes_77  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=23.569..23.569 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_78_symbol_chunk_id_idx1 on quotes_78  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=25.204..25.204 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_79_symbol_chunk_id_idx1 on quotes_79  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=18.848..18.848 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_80_symbol_chunk_id_idx1 on quotes_80  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=39.701..39.701 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_81_symbol_chunk_id_idx1 on quotes_81  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=32.622..32.622 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_82_symbol_chunk_id_idx1 on quotes_82  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=29.548..29.548 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_83_symbol_chunk_id_idx1 on quotes_83  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=27.357..27.357 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_84_symbol_chunk_id_idx1 on quotes_84  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=62.969..62.969 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_85_symbol_chunk_id_idx1 on quotes_85  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=22.842..22.842 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_86_symbol_chunk_id_idx1 on quotes_86  (cost=0.42..8.43 rows=1 width=16) (a
ctual time=58.698..58.698 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_87_symbol_chunk_id_idx1 on quotes_87  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=25.201..25.201 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_88_symbol_chunk_id_idx1 on quotes_88  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=14.345..14.345 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_89_symbol_chunk_id_idx1 on quotes_89  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=14.012..14.012 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_90_symbol_chunk_id_idx1 on quotes_90  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=19.217..19.217 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_91_symbol_chunk_id_idx1 on quotes_91  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=35.578..35.578 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_92_symbol_chunk_id_idx1 on quotes_92  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=42.653..42.653 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_93_symbol_chunk_id_idx1 on quotes_93  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=30.164..30.165 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_94_symbol_chunk_id_idx1 on quotes_94  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=64.670..64.670 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_95_symbol_chunk_id_idx1 on quotes_95  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=82.933..82.933 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_96_symbol_chunk_id_idx1 on quotes_96  (cost=0.43..8.44 rows=1 width=16) (a
ctual time=13.373..13.373 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_97_symbol_chunk_id_idx1 on quotes_97  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=73.041..73.041 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_98_symbol_chunk_id_idx1 on quotes_98  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=24.787..24.787 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_99_symbol_chunk_id_idx1 on quotes_99  (cost=0.42..8.44 rows=1 width=16) (a
ctual time=22.330..22.330 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_100_symbol_chunk_id_idx1 on quotes_100  (cost=0.42..8.44 rows=1 width=16)
(actual time=15.073..15.073 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_101_symbol_chunk_id_idx1 on quotes_101  (cost=0.42..8.42 rows=1 width=16)
(actual time=43.450..43.450 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_102_symbol_chunk_id_idx1 on quotes_102  (cost=0.42..8.44 rows=1 width=16)
(actual time=14.937..14.937 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_103_symbol_chunk_id_idx1 on quotes_103  (cost=0.42..8.44 rows=1 width=16)
(actual time=46.738..46.738 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_104_symbol_chunk_id_idx1 on quotes_104  (cost=0.42..8.44 rows=1 width=16)
(actual time=20.980..20.980 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_105_symbol_chunk_id_idx1 on quotes_105  (cost=0.42..8.44 rows=1 width=16)
(actual time=39.503..39.503 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_106_symbol_chunk_id_idx1 on quotes_106  (cost=0.42..8.44 rows=1 width=16)
(actual time=19.778..19.779 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_107_symbol_chunk_id_idx1 on quotes_107  (cost=0.42..8.44 rows=1 width=16)
(actual time=14.042..14.042 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_108_symbol_chunk_id_idx1 on quotes_108  (cost=0.43..8.44 rows=1 width=16)
(actual time=14.986..14.986 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_109_symbol_chunk_id_idx1 on quotes_109  (cost=0.42..8.43 rows=1 width=16)
(actual time=27.951..27.951 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_110_symbol_chunk_id_idx1 on quotes_110  (cost=0.42..8.44 rows=1 width=16)
(actual time=30.855..30.855 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_111_symbol_chunk_id_idx1 on quotes_111  (cost=0.42..8.44 rows=1 width=16)
(actual time=25.702..25.702 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_112_symbol_chunk_id_idx1 on quotes_112  (cost=0.42..8.44 rows=1 width=16)
(actual time=25.363..25.363 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_113_symbol_chunk_id_idx1 on quotes_113  (cost=0.42..8.44 rows=1 width=16)
(actual time=301.515..301.515 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_114_symbol_chunk_id_idx1 on quotes_114  (cost=0.42..8.44 rows=1 width=16)
(actual time=275.201..275.201 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_115_symbol_chunk_id_idx1 on quotes_115  (cost=0.42..8.44 rows=1 width=16)
(actual time=39.636..39.636 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_116_symbol_chunk_id_idx1 on quotes_116  (cost=0.42..8.44 rows=1 width=16)
(actual time=13.036..13.036 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_117_symbol_chunk_id_idx1 on quotes_117  (cost=0.42..8.44 rows=1 width=16)
(actual time=17.091..17.091 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_118_symbol_chunk_id_idx1 on quotes_118  (cost=0.42..8.44 rows=1 width=16)
(actual time=100.450..100.450 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_119_symbol_chunk_id_idx1 on quotes_119  (cost=0.42..8.44 rows=1 width=16)
(actual time=90.931..90.931 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_120_symbol_chunk_id_idx1 on quotes_120  (cost=0.42..8.43 rows=1 width=16)
(actual time=30.150..30.150 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_121_symbol_chunk_id_idx1 on quotes_121  (cost=0.42..8.44 rows=1 width=16)
(actual time=28.342..28.342 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_122_symbol_chunk_id_idx1 on quotes_122  (cost=0.42..8.44 rows=1 width=16)
(actual time=11.281..11.281 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_123_symbol_chunk_id_idx1 on quotes_123  (cost=0.42..8.44 rows=1 width=16)
(actual time=27.195..27.195 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_124_symbol_chunk_id_idx1 on quotes_124  (cost=0.42..8.44 rows=1 width=16)
(actual time=17.598..17.598 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_125_symbol_chunk_id_idx1 on quotes_125  (cost=0.42..8.44 rows=1 width=16)
(actual time=13.197..13.197 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_126_symbol_chunk_id_idx1 on quotes_126  (cost=0.42..8.44 rows=1 width=16)
(actual time=29.288..29.288 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_127_symbol_chunk_id_idx1 on quotes_127  (cost=0.42..8.44 rows=1 width=16)
(actual time=12.994..12.994 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_128_symbol_chunk_id_idx1 on quotes_128  (cost=0.42..8.44 rows=1 width=16)
(actual time=16.397..16.397 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_129_symbol_chunk_id_idx1 on quotes_129  (cost=0.42..8.44 rows=1 width=16)
(actual time=20.008..20.008 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_130_symbol_chunk_id_idx1 on quotes_130  (cost=0.42..8.44 rows=1 width=16)
(actual time=17.144..17.144 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_131_symbol_chunk_id_idx1 on quotes_131  (cost=0.42..8.44 rows=1 width=16)
(actual time=19.388..19.388 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_132_symbol_chunk_id_idx1 on quotes_132  (cost=0.42..8.43 rows=1 width=16)
(actual time=11.343..11.343 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_133_symbol_chunk_id_idx1 on quotes_133  (cost=0.42..8.44 rows=1 width=16)
(actual time=15.873..15.873 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_134_symbol_chunk_id_idx1 on quotes_134  (cost=0.42..8.44 rows=1 width=16)
(actual time=13.600..13.600 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_135_symbol_chunk_id_idx1 on quotes_135  (cost=0.42..8.43 rows=1 width=16)
(actual time=132.991..132.991 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_136_symbol_chunk_id_idx1 on quotes_136  (cost=0.42..8.44 rows=1 width=16)
(actual time=5.269..5.270 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_137_symbol_chunk_id_idx1 on quotes_137  (cost=0.42..8.44 rows=1 width=16)
(actual time=24.996..24.996 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_138_symbol_chunk_id_idx1 on quotes_138  (cost=0.42..8.44 rows=1 width=16)
(actual time=143.878..143.878 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_139_symbol_chunk_id_idx1 on quotes_139  (cost=0.42..8.44 rows=1 width=16)
(actual time=286.335..286.336 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_140_symbol_chunk_id_idx1 on quotes_140  (cost=0.42..8.43 rows=1 width=16)
(actual time=48.946..48.946 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_141_symbol_chunk_id_idx1 on quotes_141  (cost=0.42..8.44 rows=1 width=16)
(actual time=26.577..26.577 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_142_symbol_chunk_id_idx1 on quotes_142  (cost=0.42..8.44 rows=1 width=16)
(actual time=82.622..82.623 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_143_symbol_chunk_id_idx1 on quotes_143  (cost=0.42..8.44 rows=1 width=16)
(actual time=9.932..9.932 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_144_symbol_chunk_id_idx1 on quotes_144  (cost=0.42..8.44 rows=1 width=16)
(actual time=22.535..22.535 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_145_symbol_chunk_id_idx1 on quotes_145  (cost=0.42..8.44 rows=1 width=16)
(actual time=13.366..13.366 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_146_symbol_chunk_id_idx1 on quotes_146  (cost=0.42..8.44 rows=1 width=16)
(actual time=14.648..14.648 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_147_symbol_chunk_id_idx1 on quotes_147  (cost=0.42..8.44 rows=1 width=16)
(actual time=19.620..19.620 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_148_symbol_chunk_id_idx1 on quotes_148  (cost=0.42..8.44 rows=1 width=16)
(actual time=12.460..12.460 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_149_symbol_chunk_id_idx1 on quotes_149  (cost=0.42..8.44 rows=1 width=16)
(actual time=81.010..81.010 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_150_symbol_chunk_id_idx1 on quotes_150  (cost=0.42..8.44 rows=1 width=16)
(actual time=52.261..52.261 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_151_symbol_chunk_id_idx1 on quotes_151  (cost=0.42..8.44 rows=1 width=16)
(actual time=140.876..140.876 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_152_symbol_chunk_id_idx1 on quotes_152  (cost=0.42..8.44 rows=1 width=16)
(actual time=9.724..9.724 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_153_symbol_chunk_id_idx1 on quotes_153  (cost=0.42..8.44 rows=1 width=16)
(actual time=111.923..111.923 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_154_symbol_chunk_id_idx1 on quotes_154  (cost=0.42..8.44 rows=1 width=16)
(actual time=206.109..206.109 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_155_symbol_chunk_id_idx1 on quotes_155  (cost=0.42..8.44 rows=1 width=16)
(actual time=393.460..393.460 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_156_symbol_chunk_id_idx1 on quotes_156  (cost=0.42..8.44 rows=1 width=16)
(actual time=231.433..231.433 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_157_symbol_chunk_id_idx1 on quotes_157  (cost=0.42..8.44 rows=1 width=16)
(actual time=246.102..246.102 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_158_symbol_chunk_id_idx1 on quotes_158  (cost=0.42..8.44 rows=1 width=16)
(actual time=316.520..316.520 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_159_symbol_chunk_id_idx1 on quotes_159  (cost=0.42..8.44 rows=1 width=16)
(actual time=194.797..194.797 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_160_symbol_chunk_id_idx1 on quotes_160  (cost=0.42..8.43 rows=1 width=16)
(actual time=60.826..60.827 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_161_symbol_chunk_id_idx1 on quotes_161  (cost=0.42..8.44 rows=1 width=16)
(actual time=207.193..207.193 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_162_symbol_chunk_id_idx1 on quotes_162  (cost=0.42..8.44 rows=1 width=16)
(actual time=596.949..596.949 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_163_symbol_chunk_id_idx1 on quotes_163  (cost=0.42..8.44 rows=1 width=16)
(actual time=370.000..370.000 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_164_symbol_chunk_id_idx1 on quotes_164  (cost=0.42..8.44 rows=1 width=16)
(actual time=447.076..447.076 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_165_symbol_chunk_id_idx1 on quotes_165  (cost=0.42..8.44 rows=1 width=16)
(actual time=187.770..187.770 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_166_symbol_chunk_id_idx1 on quotes_166  (cost=0.42..8.44 rows=1 width=16)
(actual time=123.740..123.740 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_167_symbol_chunk_id_idx1 on quotes_167  (cost=0.42..8.44 rows=1 width=16)
(actual time=20.430..20.430 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_168_symbol_chunk_id_idx1 on quotes_168  (cost=0.42..8.44 rows=1 width=16)
(actual time=16.486..16.486 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_169_symbol_chunk_id_idx1 on quotes_169  (cost=0.42..8.44 rows=1 width=16)
(actual time=34.487..34.487 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_170_symbol_chunk_id_idx1 on quotes_170  (cost=0.42..8.44 rows=1 width=16)
(actual time=16.772..16.772 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_171_symbol_chunk_id_idx1 on quotes_171  (cost=0.42..8.44 rows=1 width=16)
(actual time=21.849..21.849 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_172_symbol_chunk_id_idx1 on quotes_172  (cost=0.42..8.44 rows=1 width=16)
(actual time=17.413..17.413 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_173_symbol_chunk_id_idx1 on quotes_173  (cost=0.42..8.43 rows=1 width=16)
(actual time=15.372..15.372 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_174_symbol_chunk_id_idx1 on quotes_174  (cost=0.42..8.43 rows=1 width=16)
(actual time=24.842..24.842 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_175_symbol_chunk_id_idx1 on quotes_175  (cost=0.42..8.44 rows=1 width=16)
(actual time=61.523..61.523 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_176_symbol_chunk_id_idx1 on quotes_176  (cost=0.42..8.44 rows=1 width=16)
(actual time=17.337..17.337 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_177_symbol_chunk_id_idx1 on quotes_177  (cost=0.42..8.44 rows=1 width=16)
(actual time=33.067..33.067 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_178_symbol_chunk_id_idx1 on quotes_178  (cost=0.42..8.44 rows=1 width=16)
(actual time=28.576..28.576 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_179_symbol_chunk_id_idx1 on quotes_179  (cost=0.42..8.44 rows=1 width=16)
(actual time=678.142..678.142 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_180_symbol_chunk_id_idx1 on quotes_180  (cost=0.42..8.44 rows=1 width=16)
(actual time=157.393..157.393 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_181_symbol_chunk_id_idx1 on quotes_181  (cost=0.42..8.44 rows=1 width=16)
(actual time=36.361..36.361 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_182_symbol_chunk_id_idx1 on quotes_182  (cost=0.42..8.44 rows=1 width=16)
(actual time=28.271..28.271 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_183_symbol_chunk_id_idx1 on quotes_183  (cost=0.42..8.43 rows=1 width=16)
(actual time=146.265..146.265 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_184_symbol_chunk_id_idx1 on quotes_184  (cost=0.42..8.43 rows=1 width=16)
(actual time=16.792..16.793 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_185_symbol_chunk_id_idx1 on quotes_185  (cost=0.42..8.44 rows=1 width=16)
(actual time=144.218..144.218 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_186_symbol_chunk_id_idx1 on quotes_186  (cost=0.42..8.44 rows=1 width=16)
(actual time=81.750..81.750 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_187_symbol_chunk_id_idx1 on quotes_187  (cost=0.42..8.44 rows=1 width=16)
(actual time=111.781..111.781 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_188_symbol_chunk_id_idx1 on quotes_188  (cost=0.42..8.44 rows=1 width=16)
(actual time=24.841..24.841 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_189_symbol_chunk_id_idx1 on quotes_189  (cost=0.42..8.44 rows=1 width=16)
(actual time=54.262..54.262 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_190_symbol_chunk_id_idx1 on quotes_190  (cost=0.42..8.43 rows=1 width=16)
(actual time=22.917..22.917 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_191_symbol_chunk_id_idx1 on quotes_191  (cost=0.42..8.44 rows=1 width=16)
(actual time=43.056..43.056 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_192_symbol_chunk_id_idx1 on quotes_192  (cost=0.42..8.44 rows=1 width=16)
(actual time=32.850..32.850 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_193_symbol_chunk_id_idx1 on quotes_193  (cost=0.42..8.44 rows=1 width=16)
(actual time=154.957..154.957 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_194_symbol_chunk_id_idx1 on quotes_194  (cost=0.42..8.44 rows=1 width=16)
(actual time=29.994..29.994 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_195_symbol_chunk_id_idx1 on quotes_195  (cost=0.42..8.44 rows=1 width=16)
(actual time=143.209..143.209 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_196_symbol_chunk_id_idx1 on quotes_196  (cost=0.42..8.44 rows=1 width=16)
(actual time=22.891..22.891 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_197_symbol_chunk_id_idx1 on quotes_197  (cost=0.42..8.44 rows=1 width=16)
(actual time=162.157..162.157 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_198_symbol_chunk_id_idx1 on quotes_198  (cost=0.42..8.44 rows=1 width=16)
(actual time=19.513..19.513 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
   ->  Index Scan using quotes_199_symbol_chunk_id_idx1 on quotes_199  (cost=0.42..8.44 rows=1 width=16)
(actual time=25.230..25.230 rows=0 loops=1)
         Index Cond: ((symbol)::text = 'MSFT'::text)
         Buffers: shared read=3
 Planning Time: 30.029 ms
 Execution Time: 19627.821 ms
(608 rows)



====================

These are the main changes I made:

1)change cache_buffers size to 30% of system memory.
2)
max_parallel_maintenance_workers = 16 # taken from max_parallel_workers
max_parallel_workers_per_gather = 16 # taken from max_parallel_workers
max_parallel_workers = 32 # maximum number of max_worker_processes that
3)disable autovacuum on this slave node
4)
work_mem = 4MB                  # min 64kB
maintenance_work_mem = 2048MB           # min 1MB



Thanks in advance!

pgsql-general by date:

Previous
From: İlyas Derse
Date:
Subject: Return Table in StoredProceure/Function
Next
From: Thomas Kellerer
Date:
Subject: Re: How should I specify work_mem/max_worker_processes if I want todo big queries now and then?