>  uuid character varying(45) NOT NULL,

Just a comment.
IF this is a real UUID ( RFC 4122, ISO/IEC 9834-8:2005 ) ;
THEN you can use the built in  "UUID Type"
https://www.postgresql.org/docs/11/datatype-uuid.html


*"UUID would be the fastest because its 128 bits -> 16 bytes and
comparisons are done numerically."*
https://stackoverflow.com/questions/32189129/performance-difference-between-uuid-char-and-varchar-in-postgresql-table
The smaller size can be important for your index size ! :   *"quotes_pkey
PRIMARY KEY (symbol_id, uuid);"*

Imre


James(王旭) <wan...@gu360.com> ezt írta (időpont: 2019. nov. 20., Sze, 9:23):

>
> 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!
>

Reply via email to