explain(analyze, verbose) select atimecol as atimecol, count(1) as count, sum(avg) as sum from ( select partitionid, atimecol as atimecol, avg(sum/count) as avg from atable where atimecol >= '7/31/2018' and atimecol <= '8/28/2018' and aText = 'Foo' and (jsoncol ->> 'X') = '-' and id=12345 and acol = 2 and btimecol='7/31/2018' and btimecol<'8/29/2018' group by partitionid, atimecol ) as subquery group by atimecol; QUERY PLAN --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- HashAggregate (cost=0.00..0.00 rows=0 width=0) (actual time=535.553..535.553 rows=0 loops=1) Output: remote_scan.atimecol, COALESCE((pg_catalog.sum(remote_scan.count))::bigint, '0'::bigint), sum(remote_scan.sum) Group Key: remote_scan.atimecol -> Custom Scan (Citus Real-Time) (cost=0.00..0.00 rows=0 width=0) (actual time=535.551..535.551 rows=0 loops=1) Output: remote_scan.atimecol, remote_scan.count, remote_scan.sum Task Count: 40 Tasks Shown: One of 40 -> Task Node: host=192.168.1.10 port=8432 dbname=measures -> GroupAggregate (cost=155839.44..155847.88 rows=200 width=24) (actual time=255.514..255.514 rows=0 loops=1) Output: subquery.atimecol, count(1), sum(subquery.avg) Group Key: subquery.atimecol -> Sort (cost=155839.44..155841.05 rows=644 width=16) (actual time=255.513..255.513 rows=0 loops=1) Output: subquery.atimecol, subquery.avg Sort Key: subquery.atimecol Sort Method: quicksort Memory: 25kB -> Subquery Scan on subquery (cost=155720.69..155809.39 rows=644 width=16) (actual time=255.509..255.509 rows=0 loops=1) Output: subquery.atimecol, subquery.avg -> Finalize GroupAggregate (cost=155720.69..155802.95 rows=644 width=24) (actual time=255.508..255.508 rows=0 loops=1) Output: atable.deviceid, atable.atimecol, avg((atable.sum / (atable.count)::double precision)) Group Key: atable.deviceid, atable.atimecol -> Gather Merge (cost=155720.69..155790.79 rows=548 width=48) (actual time=255.507..255.507 rows=0 loops=1) Output: atable.deviceid, atable.atimecol, (PARTIAL avg((atable.sum / (atable.count)::double precision))) Workers Planned: 2 Workers Launched: 2 -> Partial GroupAggregate (cost=154720.67..154727.52 rows=274 width=48) (actual time=245.145..245.145 rows=0 loops=3) Output: atable.deviceid, atable.atimecol, PARTIAL avg((atable.sum / (atable.count)::double precision)) Group Key: atable.deviceid, atable.atimecol Worker 0: actual time=241.308..241.308 rows=0 loops=1 Worker 1: actual time=241.314..241.314 rows=0 loops=1 -> Sort (cost=154720.67..154721.35 rows=274 width=28) (actual time=245.143..245.143 rows=0 loops=3) Output: atable.deviceid, atable.atimecol, atable.sum, atable.count Sort Key: atable.deviceid, atable.atimecol Sort Method: quicksort Memory: 25kB Worker 0: actual time=241.307..241.307 rows=0 loops=1 Worker 1: actual time=241.312..241.312 rows=0 loops=1 -> Append (cost=107.53..154709.57 rows=274 width=28) (actual time=245.042..245.042 rows=0 loops=3) Worker 0: actual time=241.159..241.159 rows=0 loops=1 Worker 1: actual time=241.167..241.167 rows=0 loops=1 -> Parallel Bitmap Heap Scan on public.atable_07_31_2018_115891 atable (cost=107.53..5400.41 rows=9 width=28) (actual time=14.439..14.439 rows=0 loops=3) Output: atable.deviceid, atable.atimecol, atable.sum, atable.count Recheck Cond: ((atable.id = 12345) AND (atable.acol = 2) AND (atable.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone ) AND (atable.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable.aText = 'Foo'::text)) Filter: ((atable.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone) AN D ((atable.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2901 Heap Blocks: exact=1532 Worker 0: actual time=10.554..10.554 rows=0 loops=1 Worker 1: actual time=10.561..10.561 rows=0 loops=1 -> Bitmap Index Scan on atable_07_31_2018_bar_pidx_115891 (cost=0.00..107.52 rows=4491 width=0) (actual time=1.733..1.733 rows=8704 loops=1) Index Cond: ((atable.id = 12345) AND (atable.acol = 2) AND (atable.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) -> Parallel Index Scan using atable_08_01_2018_bar_pidx_116051 on public.atable_08_01_2018_116051 atable_1 (cost=0.56..5966.67 rows=15 width=28) (actual tim e=19.664..19.664 rows=0 loops=3) Output: atable_1.deviceid, atable_1.atimecol, atable_1.sum, atable_1.count Index Cond: ((atable_1.id = 12345) AND (atable_1.acol = 2) AND (atable_1.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_1.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Filter: ((atable_1.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_1.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone ) AND ((atable_1.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 3310 Worker 0: actual time=20.063..20.063 rows=0 loops=1 Worker 1: actual time=19.530..19.530 rows=0 loops=1 -> Parallel Index Scan using atable_08_02_2018_bar_ux_pidx_116171 on public.atable_08_02_2018_116171 atable_2 (cost=0.42..2.85 rows=1 width=28) (actual ti me=0.010..0.010 rows=0 loops=3) Output: atable_2.deviceid, atable_2.atimecol, atable_2.sum, atable_2.count Index Cond: ((atable_2.id = 12345) AND (atable_2.acol = 2) AND (atable_2.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_2.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Filter: ((atable_2.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_2.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone ) AND ((atable_2.jsoncol ->> 'X'::text) = '-'::text)) Worker 0: actual time=0.001..0.001 rows=0 loops=1 Worker 1: actual time=0.002..0.002 rows=0 loops=1 -> Parallel Bitmap Heap Scan on public.atable_08_03_2018_116371 atable_3 (cost=147.04..7399.29 rows=13 width=28) (actual time=21.362..21.362 rows=0 loops=3) Output: atable_3.deviceid, atable_3.atimecol, atable_3.sum, atable_3.count Recheck Cond: ((atable_3.id = 12345) AND (atable_3.acol = 2) AND (atable_3.atimecol >= '2018-07-31 00:00:00+00'::timestamp with tim e zone) AND (atable_3.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_3.aText = 'Foo'::text)) Filter: ((atable_3.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_3.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone ) AND ((atable_3.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 3810 Heap Blocks: exact=1632 Worker 0: actual time=20.975..20.975 rows=0 loops=1 Worker 1: actual time=21.505..21.505 rows=0 loops=1 -> Bitmap Index Scan on atable_08_03_2018_bar_pidx_116371 (cost=0.00..147.03 rows=6165 width=0) (actual time=2.469..2.469 rows=11429 loops=1) Index Cond: ((atable_3.id = 12345) AND (atable_3.acol = 2) AND (atable_3.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_3.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) -> Parallel Bitmap Heap Scan on public.atable_08_04_2018_116531 atable_4 (cost=97.73..4901.29 rows=8 width=28) (actual time=14.063..14.063 rows=0 loops=3) Output: atable_4.deviceid, atable_4.atimecol, atable_4.sum, atable_4.count Recheck Cond: ((atable_4.id = 12345) AND (atable_4.acol = 2) AND (atable_4.atimecol >= '2018-07-31 00:00:00+00'::timestamp with tim e zone) AND (atable_4.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_4.aText = 'Foo'::text)) Filter: ((atable_4.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_4.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone ) AND ((atable_4.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2669 Heap Blocks: exact=1180 Worker 0: actual time=14.063..14.063 rows=0 loops=1 Worker 1: actual time=14.061..14.061 rows=0 loops=1 -> Bitmap Index Scan on atable_08_04_2018_bar_pidx_116531 (cost=0.00..97.72 rows=4078 width=0) (actual time=1.684..1.684 rows=8006 loops=1) Index Cond: ((atable_4.id = 12345) AND (atable_4.acol = 2) AND (atable_4.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_4.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Worker 0: actual time=1.684..1.684 rows=8006 loops=1 -> Parallel Bitmap Heap Scan on public.atable_08_05_2018_116691 atable_5 (cost=91.55..4597.87 rows=8 width=28) (actual time=12.461..12.461 rows=0 loops=3) Output: atable_5.deviceid, atable_5.atimecol, atable_5.sum, atable_5.count Recheck Cond: ((atable_5.id = 12345) AND (atable_5.acol = 2) AND (atable_5.atimecol >= '2018-07-31 00:00:00+00'::timestamp with tim e zone) AND (atable_5.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_5.aText = 'Foo'::text)) Filter: ((atable_5.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_5.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone ) AND ((atable_5.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2455 Heap Blocks: exact=745 Worker 0: actual time=12.467..12.467 rows=0 loops=1 Worker 1: actual time=12.458..12.458 rows=0 loops=1 -> Bitmap Index Scan on atable_08_05_2018_bar_pidx_116691 (cost=0.00..91.54 rows=3826 width=0) (actual time=1.629..1.629 rows=7365 loops=1) Index Cond: ((atable_5.id = 12345) AND (atable_5.acol = 2) AND (atable_5.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_5.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Worker 0: actual time=1.629..1.629 rows=7365 loops=1 -> Parallel Bitmap Heap Scan on public.atable_08_06_2018_116851 atable_6 (cost=90.44..4510.33 rows=8 width=28) (actual time=13.344..13.344 rows=0 loops=3) Output: atable_6.deviceid, atable_6.atimecol, atable_6.sum, atable_6.count Recheck Cond: ((atable_6.id = 12345) AND (atable_6.acol = 2) AND (atable_6.atimecol >= '2018-07-31 00:00:00+00'::timestamp with tim e zone) AND (atable_6.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_6.aText = 'Foo'::text)) Filter: ((atable_6.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_6.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone ) AND ((atable_6.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2503 Heap Blocks: exact=1287 Worker 0: actual time=13.341..13.341 rows=0 loops=1 Worker 1: actual time=13.347..13.347 rows=0 loops=1 -> Bitmap Index Scan on atable_08_06_2018_bar_pidx_116851 (cost=0.00..90.43 rows=3752 width=0) (actual time=1.456..1.456 rows=7509 loops=1) Index Cond: ((atable_6.id = 12345) AND (atable_6.acol = 2) AND (atable_6.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_6.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Worker 1: actual time=1.456..1.456 rows=7509 loops=1 -> Parallel Bitmap Heap Scan on public.atable_08_07_2018_117011 atable_7 (cost=104.48..5245.02 rows=9 width=28) (actual time=19.819..19.819 rows=0 loops=3) Output: atable_7.deviceid, atable_7.atimecol, atable_7.sum, atable_7.count Recheck Cond: ((atable_7.id = 12345) AND (atable_7.acol = 2) AND (atable_7.atimecol >= '2018-07-31 00:00:00+00'::timestamp with tim e zone) AND (atable_7.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_7.aText = 'Foo'::text)) Filter: ((atable_7.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_7.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone ) AND ((atable_7.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2950 Heap Blocks: exact=1971 Worker 0: actual time=19.818..19.818 rows=0 loops=1 Worker 1: actual time=19.818..19.818 rows=0 loops=1 -> Bitmap Index Scan on atable_08_07_2018_bar_pidx_117011 (cost=0.00..104.47 rows=4368 width=0) (actual time=2.383..2.383 rows=8851 loops=1) Index Cond: ((atable_7.id = 12345) AND (atable_7.acol = 2) AND (atable_7.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_7.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) -> Parallel Bitmap Heap Scan on public.atable_08_08_2018_117171 atable_8 (cost=98.11..4930.63 rows=9 width=28) (actual time=10.521..10.521 rows=0 loops=3) Output: atable_8.deviceid, atable_8.atimecol, atable_8.sum, atable_8.count Recheck Cond: ((atable_8.id = 12345) AND (atable_8.acol = 2) AND (atable_8.atimecol >= '2018-07-31 00:00:00+00'::timestamp with tim e zone) AND (atable_8.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_8.aText = 'Foo'::text)) Filter: ((atable_8.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_8.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone ) AND ((atable_8.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2725 Heap Blocks: exact=853 Worker 0: actual time=10.520..10.520 rows=0 loops=1 Worker 1: actual time=10.524..10.524 rows=0 loops=1 -> Bitmap Index Scan on atable_08_08_2018_bar_pidx_117171 (cost=0.00..98.10 rows=4103 width=0) (actual time=1.301..1.301 rows=8174 loops=1) Index Cond: ((atable_8.id = 12345) AND (atable_8.acol = 2) AND (atable_8.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_8.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Worker 1: actual time=1.301..1.301 rows=8174 loops=1 -> Parallel Bitmap Heap Scan on public.atable_08_09_2018_117251 atable_9 (cost=100.23..4999.86 rows=9 width=28) (actual time=4.913..4.913 rows=0 loops=3) Output: atable_9.deviceid, atable_9.atimecol, atable_9.sum, atable_9.count Recheck Cond: ((atable_9.id = 12345) AND (atable_9.acol = 2) AND (atable_9.atimecol >= '2018-07-31 00:00:00+00'::timestamp with tim e zone) AND (atable_9.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_9.aText = 'Foo'::text)) Filter: ((atable_9.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_9.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone ) AND ((atable_9.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2759 Heap Blocks: exact=286 Worker 0: actual time=4.912..4.912 rows=0 loops=1 Worker 1: actual time=4.911..4.911 rows=0 loops=1 -> Bitmap Index Scan on atable_08_09_2018_bar_pidx_117251 (cost=0.00..100.23 rows=4165 width=0) (actual time=1.164..1.164 rows=8277 loops=1) Index Cond: ((atable_9.id = 12345) AND (atable_9.acol = 2) AND (atable_9.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_9.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Worker 0: actual time=1.164..1.164 rows=8277 loops=1 -> Parallel Bitmap Heap Scan on public.atable_08_10_2018_117451 atable_10 (cost=101.21..5081.85 rows=9 width=28) (actual time=5.534..5.534 rows=0 loops=3) Output: atable_10.deviceid, atable_10.atimecol, atable_10.sum, atable_10.count Recheck Cond: ((atable_10.id = 12345) AND (atable_10.acol = 2) AND (atable_10.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_10.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_10.aText = 'Foo'::text)) Filter: ((atable_10.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_10.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_10.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2841 Heap Blocks: exact=307 Worker 0: actual time=5.533..5.533 rows=0 loops=1 Worker 1: actual time=5.538..5.538 rows=0 loops=1 -> Bitmap Index Scan on atable_08_10_2018_bar_pidx_117451 (cost=0.00..101.20 rows=4230 width=0) (actual time=1.121..1.121 rows=8524 loops=1) Index Cond: ((atable_10.id = 12345) AND (atable_10.acol = 2) AND (atable_10.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_10.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Worker 0: actual time=1.121..1.121 rows=8524 loops=1 -> Parallel Bitmap Heap Scan on public.atable_08_11_2018_117611 atable_11 (cost=107.59..5395.58 rows=9 width=28) (actual time=5.418..5.418 rows=0 loops=3) Output: atable_11.deviceid, atable_11.atimecol, atable_11.sum, atable_11.count Recheck Cond: ((atable_11.id = 12345) AND (atable_11.acol = 2) AND (atable_11.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_11.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_11.aText = 'Foo'::text)) Filter: ((atable_11.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_11.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_11.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2953 Heap Blocks: exact=312 Worker 0: actual time=5.423..5.423 rows=0 loops=1 Worker 1: actual time=5.412..5.412 rows=0 loops=1 -> Bitmap Index Scan on atable_08_11_2018_bar_pidx_117611 (cost=0.00..107.58 rows=4495 width=0) (actual time=1.221..1.221 rows=8858 loops=1) Index Cond: ((atable_11.id = 12345) AND (atable_11.acol = 2) AND (atable_11.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_11.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Worker 0: actual time=1.221..1.221 rows=8858 loops=1 -> Parallel Bitmap Heap Scan on public.atable_08_12_2018_117811 atable_12 (cost=94.89..4769.68 rows=8 width=28) (actual time=5.192..5.192 rows=0 loops=3) Output: atable_12.deviceid, atable_12.atimecol, atable_12.sum, atable_12.count Recheck Cond: ((atable_12.id = 12345) AND (atable_12.acol = 2) AND (atable_12.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_12.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_12.aText = 'Foo'::text)) Filter: ((atable_12.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_12.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_12.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2642 Heap Blocks: exact=353 Worker 0: actual time=5.193..5.193 rows=0 loops=1 Worker 1: actual time=5.196..5.196 rows=0 loops=1 -> Bitmap Index Scan on atable_08_12_2018_bar_pidx_117811 (cost=0.00..94.89 rows=3969 width=0) (actual time=0.957..0.957 rows=7927 loops=1) Index Cond: ((atable_12.id = 12345) AND (atable_12.acol = 2) AND (atable_12.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_12.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Worker 1: actual time=0.957..0.957 rows=7927 loops=1 -> Parallel Bitmap Heap Scan on public.atable_08_13_2018_117931 atable_13 (cost=105.37..5308.48 rows=9 width=28) (actual time=4.916..4.916 rows=0 loops=3) Output: atable_13.deviceid, atable_13.atimecol, atable_13.sum, atable_13.count Recheck Cond: ((atable_13.id = 12345) AND (atable_13.acol = 2) AND (atable_13.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_13.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_13.aText = 'Foo'::text)) Filter: ((atable_13.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_13.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_13.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2942 Heap Blocks: exact=293 Worker 0: actual time=4.916..4.916 rows=0 loops=1 Worker 1: actual time=4.916..4.916 rows=0 loops=1 -> Bitmap Index Scan on atable_08_13_2018_bar_pidx_117931 (cost=0.00..105.36 rows=4427 width=0) (actual time=1.094..1.094 rows=8827 loops=1) Index Cond: ((atable_13.id = 12345) AND (atable_13.acol = 2) AND (atable_13.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_13.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) -> Parallel Bitmap Heap Scan on public.atable_08_14_2018_118091 atable_14 (cost=124.84..6280.54 rows=11 width=28) (actual time=6.525..6.525 rows=0 loops=3) Output: atable_14.deviceid, atable_14.atimecol, atable_14.sum, atable_14.count Recheck Cond: ((atable_14.id = 12345) AND (atable_14.acol = 2) AND (atable_14.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_14.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_14.aText = 'Foo'::text)) Filter: ((atable_14.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_14.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_14.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 3573 Heap Blocks: exact=294 Worker 0: actual time=6.522..6.522 rows=0 loops=1 Worker 1: actual time=6.524..6.524 rows=0 loops=1 -> Bitmap Index Scan on atable_08_14_2018_bar_pidx_118091 (cost=0.00..124.83 rows=5245 width=0) (actual time=1.288..1.288 rows=10720 loops=1) Index Cond: ((atable_14.id = 12345) AND (atable_14.acol = 2) AND (atable_14.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_14.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) -> Parallel Bitmap Heap Scan on public.atable_08_15_2018_118251 atable_15 (cost=133.90..6723.57 rows=12 width=28) (actual time=6.582..6.582 rows=0 loops=3) Output: atable_15.deviceid, atable_15.atimecol, atable_15.sum, atable_15.count Recheck Cond: ((atable_15.id = 12345) AND (atable_15.acol = 2) AND (atable_15.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_15.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_15.aText = 'Foo'::text)) Filter: ((atable_15.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_15.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_15.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 3746 Heap Blocks: exact=397 Worker 0: actual time=6.579..6.579 rows=0 loops=1 Worker 1: actual time=6.585..6.585 rows=0 loops=1 -> Bitmap Index Scan on atable_08_15_2018_bar_pidx_118251 (cost=0.00..133.89 rows=5609 width=0) (actual time=1.477..1.477 rows=11238 loops=1) Index Cond: ((atable_15.id = 12345) AND (atable_15.acol = 2) AND (atable_15.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_15.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Worker 0: actual time=1.477..1.477 rows=11238 loops=1 -> Parallel Bitmap Heap Scan on public.atable_08_16_2018_118411 atable_16 (cost=101.89..5133.13 rows=9 width=28) (actual time=4.779..4.779 rows=0 loops=3) Output: atable_16.deviceid, atable_16.atimecol, atable_16.sum, atable_16.count Recheck Cond: ((atable_16.id = 12345) AND (atable_16.acol = 2) AND (atable_16.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_16.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_16.aText = 'Foo'::text)) Filter: ((atable_16.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_16.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_16.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2814 Heap Blocks: exact=314 Worker 0: actual time=4.783..4.783 rows=0 loops=1 Worker 1: actual time=4.776..4.776 rows=0 loops=1 -> Bitmap Index Scan on atable_08_16_2018_bar_pidx_118411 (cost=0.00..101.88 rows=4275 width=0) (actual time=0.966..0.966 rows=8443 loops=1) Index Cond: ((atable_16.id = 12345) AND (atable_16.acol = 2) AND (atable_16.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_16.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Worker 0: actual time=0.966..0.966 rows=8443 loops=1 -> Parallel Bitmap Heap Scan on public.atable_08_17_2018_118571 atable_17 (cost=113.86..5711.06 rows=10 width=28) (actual time=6.262..6.262 rows=0 loops=3) Output: atable_17.deviceid, atable_17.atimecol, atable_17.sum, atable_17.count Recheck Cond: ((atable_17.id = 12345) AND (atable_17.acol = 2) AND (atable_17.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_17.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_17.aText = 'Foo'::text)) Filter: ((atable_17.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_17.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_17.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 3220 Heap Blocks: exact=343 Worker 0: actual time=6.263..6.263 rows=0 loops=1 Worker 1: actual time=6.262..6.262 rows=0 loops=1 -> Bitmap Index Scan on atable_08_17_2018_bar_pidx_118571 (cost=0.00..113.85 rows=4753 width=0) (actual time=1.126..1.126 rows=9659 loops=1) Index Cond: ((atable_17.id = 12345) AND (atable_17.acol = 2) AND (atable_17.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_17.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) -> Parallel Bitmap Heap Scan on public.atable_08_18_2018_118731 atable_18 (cost=101.72..5124.76 rows=9 width=28) (actual time=7.255..7.255 rows=0 loops=3) Output: atable_18.deviceid, atable_18.atimecol, atable_18.sum, atable_18.count Recheck Cond: ((atable_18.id = 12345) AND (atable_18.acol = 2) AND (atable_18.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_18.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_18.aText = 'Foo'::text)) Filter: ((atable_18.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_18.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_18.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2841 Heap Blocks: exact=319 Worker 0: actual time=7.255..7.255 rows=0 loops=1 Worker 1: actual time=7.254..7.254 rows=0 loops=1 -> Bitmap Index Scan on atable_08_18_2018_bar_pidx_118731 (cost=0.00..101.72 rows=4264 width=0) (actual time=1.235..1.235 rows=8524 loops=1) Index Cond: ((atable_18.id = 12345) AND (atable_18.acol = 2) AND (atable_18.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_18.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) -> Parallel Bitmap Heap Scan on public.atable_08_19_2018_118891 atable_19 (cost=85.13..4277.95 rows=8 width=28) (actual time=5.071..5.071 rows=0 loops=3) Output: atable_19.deviceid, atable_19.atimecol, atable_19.sum, atable_19.count Recheck Cond: ((atable_19.id = 12345) AND (atable_19.acol = 2) AND (atable_19.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_19.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_19.aText = 'Foo'::text)) Filter: ((atable_19.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_19.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_19.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2404 Heap Blocks: exact=275 Worker 0: actual time=5.067..5.067 rows=0 loops=1 Worker 1: actual time=5.074..5.074 rows=0 loops=1 -> Bitmap Index Scan on atable_08_19_2018_bar_pidx_118891 (cost=0.00..85.12 rows=3558 width=0) (actual time=1.438..1.438 rows=7211 loops=1) Index Cond: ((atable_19.id = 12345) AND (atable_19.acol = 2) AND (atable_19.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_19.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) -> Parallel Bitmap Heap Scan on public.atable_08_20_2018_119051 atable_20 (cost=100.58..4562.99 rows=8 width=28) (actual time=5.374..5.374 rows=0 loops=3) Output: atable_20.deviceid, atable_20.atimecol, atable_20.sum, atable_20.count Recheck Cond: ((atable_20.id = 12345) AND (atable_20.acol = 2) AND (atable_20.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_20.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_20.aText = 'Foo'::text)) Filter: ((atable_20.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_20.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_20.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2534 Heap Blocks: exact=286 Worker 0: actual time=5.375..5.375 rows=0 loops=1 Worker 1: actual time=5.373..5.373 rows=0 loops=1 -> Bitmap Index Scan on atable_08_20_2018_bar_ux_pidx_119051 (cost=0.00..100.57 rows=3788 width=0) (actual time=1.414..1.414 rows=7602 loops=1) Index Cond: ((atable_20.id = 12345) AND (atable_20.acol = 2) AND (atable_20.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_20.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Worker 0: actual time=1.414..1.414 rows=7602 loops=1 -> Parallel Bitmap Heap Scan on public.atable_08_21_2018_119211 atable_21 (cost=147.83..6724.24 rows=12 width=28) (actual time=7.524..7.524 rows=0 loops=3) Output: atable_21.deviceid, atable_21.atimecol, atable_21.sum, atable_21.count Recheck Cond: ((atable_21.id = 12345) AND (atable_21.acol = 2) AND (atable_21.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_21.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_21.aText = 'Foo'::text)) Filter: ((atable_21.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_21.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_21.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 3847 Heap Blocks: exact=434 Worker 0: actual time=7.521..7.521 rows=0 loops=1 Worker 1: actual time=7.525..7.525 rows=0 loops=1 -> Bitmap Index Scan on atable_08_21_2018_bar_ux_pidx_119211 (cost=0.00..147.82 rows=5578 width=0) (actual time=1.937..1.937 rows=11540 loops=1) Index Cond: ((atable_21.id = 12345) AND (atable_21.acol = 2) AND (atable_21.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_21.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) -> Parallel Bitmap Heap Scan on public.atable_08_22_2018_119371 atable_22 (cost=142.13..6436.41 rows=11 width=28) (actual time=6.397..6.397 rows=0 loops=3) Output: atable_22.deviceid, atable_22.atimecol, atable_22.sum, atable_22.count Recheck Cond: ((atable_22.id = 12345) AND (atable_22.acol = 2) AND (atable_22.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_22.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_22.aText = 'Foo'::text)) Filter: ((atable_22.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_22.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_22.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 3397 Heap Blocks: exact=398 Worker 0: actual time=6.400..6.400 rows=0 loops=1 Worker 1: actual time=6.398..6.398 rows=0 loops=1 -> Bitmap Index Scan on atable_08_22_2018_bar_ux_pidx_119371 (cost=0.00..142.12 rows=5358 width=0) (actual time=1.799..1.799 rows=10191 loops=1) Index Cond: ((atable_22.id = 12345) AND (atable_22.acol = 2) AND (atable_22.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_22.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Worker 0: actual time=1.799..1.799 rows=10191 loops=1 -> Parallel Bitmap Heap Scan on public.atable_08_23_2018_119531 atable_23 (cost=116.21..5237.07 rows=9 width=28) (actual time=4.834..4.834 rows=0 loops=3) Output: atable_23.deviceid, atable_23.atimecol, atable_23.sum, atable_23.count Recheck Cond: ((atable_23.id = 12345) AND (atable_23.acol = 2) AND (atable_23.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_23.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_23.aText = 'Foo'::text)) Filter: ((atable_23.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_23.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_23.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2905 Heap Blocks: exact=329 Worker 0: actual time=4.825..4.825 rows=0 loops=1 Worker 1: actual time=4.826..4.826 rows=0 loops=1 -> Bitmap Index Scan on atable_08_23_2018_bar_ux_pidx_119531 (cost=0.00..116.21 rows=4350 width=0) (actual time=1.125..1.125 rows=8716 loops=1) Index Cond: ((atable_23.id = 12345) AND (atable_23.acol = 2) AND (atable_23.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_23.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) -> Parallel Bitmap Heap Scan on public.atable_08_24_2018_119691 atable_24 (cost=117.14..5315.90 rows=9 width=28) (actual time=9.153..9.153 rows=0 loops=3) Output: atable_24.deviceid, atable_24.atimecol, atable_24.sum, atable_24.count Recheck Cond: ((atable_24.id = 12345) AND (atable_24.acol = 2) AND (atable_24.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_24.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_24.aText = 'Foo'::text)) Filter: ((atable_24.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_24.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_24.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2987 Heap Blocks: exact=843 Worker 0: actual time=9.164..9.164 rows=0 loops=1 Worker 1: actual time=9.156..9.156 rows=0 loops=1 -> Bitmap Index Scan on atable_08_24_2018_bar_ux_pidx_119691 (cost=0.00..117.13 rows=4412 width=0) (actual time=1.773..1.773 rows=8961 loops=1) Index Cond: ((atable_24.id = 12345) AND (atable_24.acol = 2) AND (atable_24.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_24.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Worker 0: actual time=1.773..1.773 rows=8961 loops=1 -> Parallel Bitmap Heap Scan on public.atable_08_25_2018_119851 atable_25 (cost=139.90..6354.12 rows=11 width=28) (actual time=5.723..5.723 rows=0 loops=3) Output: atable_25.deviceid, atable_25.atimecol, atable_25.sum, atable_25.count Recheck Cond: ((atable_25.id = 12345) AND (atable_25.acol = 2) AND (atable_25.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_25.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_25.aText = 'Foo'::text)) Filter: ((atable_25.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_25.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_25.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 3346 Heap Blocks: exact=372 Worker 0: actual time=5.723..5.723 rows=0 loops=1 Worker 1: actual time=5.725..5.725 rows=0 loops=1 -> Bitmap Index Scan on atable_08_25_2018_bar_ux_pidx_119851 (cost=0.00..139.89 rows=5289 width=0) (actual time=1.282..1.282 rows=10037 loops=1) Index Cond: ((atable_25.id = 12345) AND (atable_25.acol = 2) AND (atable_25.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_25.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) -> Parallel Bitmap Heap Scan on public.atable_08_26_2018_120011 atable_26 (cost=108.27..4887.59 rows=8 width=28) (actual time=4.662..4.662 rows=0 loops=3) Output: atable_26.deviceid, atable_26.atimecol, atable_26.sum, atable_26.count Recheck Cond: ((atable_26.id = 12345) AND (atable_26.acol = 2) AND (atable_26.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_26.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_26.aText = 'Foo'::text)) Filter: ((atable_26.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_26.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_26.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 2645 Heap Blocks: exact=301 Worker 0: actual time=4.664..4.664 rows=0 loops=1 Worker 1: actual time=4.654..4.654 rows=0 loops=1 -> Bitmap Index Scan on atable_08_26_2018_bar_ux_pidx_120011 (cost=0.00..108.27 rows=4061 width=0) (actual time=1.043..1.043 rows=7934 loops=1) Index Cond: ((atable_26.id = 12345) AND (atable_26.acol = 2) AND (atable_26.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_26.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) -> Parallel Bitmap Heap Scan on public.atable_08_27_2018_120171 atable_27 (cost=147.65..5934.25 rows=10 width=28) (actual time=5.573..5.573 rows=0 loops=3) Output: atable_27.deviceid, atable_27.atimecol, atable_27.sum, atable_27.count Recheck Cond: ((atable_27.id = 12345) AND (atable_27.acol = 2) AND (atable_27.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_27.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_27.aText = 'Foo'::text)) Filter: ((atable_27.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_27.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_27.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 3070 Heap Blocks: exact=336 Worker 0: actual time=5.564..5.564 rows=0 loops=1 Worker 1: actual time=5.584..5.584 rows=0 loops=1 -> Bitmap Index Scan on atable_08_27_2018_bar_ux_pidx_120171 (cost=0.00..147.65 rows=4926 width=0) (actual time=1.656..1.656 rows=9211 loops=1) Index Cond: ((atable_27.id = 12345) AND (atable_27.acol = 2) AND (atable_27.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_27.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Worker 1: actual time=1.656..1.656 rows=9211 loops=1 -> Parallel Bitmap Heap Scan on public.atable_08_28_2018_120331 atable_28 (cost=187.61..7496.18 rows=13 width=28) (actual time=7.649..7.649 rows=0 loops=3) Output: atable_28.deviceid, atable_28.atimecol, atable_28.sum, atable_28.count Recheck Cond: ((atable_28.id = 12345) AND (atable_28.acol = 2) AND (atable_28.atimecol >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_28.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone) AND (atable_28.aText = 'Foo'::text)) Filter: ((atable_28.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone) AND (atable_28.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo ne) AND ((atable_28.jsoncol ->> 'X'::text) = '-'::text)) Rows Removed by Filter: 4018 Heap Blocks: exact=530 Worker 0: actual time=7.651..7.651 rows=0 loops=1 Worker 1: actual time=7.650..7.650 rows=0 loops=1 -> Bitmap Index Scan on atable_08_28_2018_bar_ux_pidx_120331 (cost=0.00..187.61 rows=6230 width=0) (actual time=2.161..2.161 rows=12055 loops=1) Index Cond: ((atable_28.id = 12345) AND (atable_28.acol = 2) AND (atable_28.atimecol >= '2018-07-31 00:00:00+00'::timestamp w ith time zone) AND (atable_28.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)) Worker 0: actual time=2.161..2.161 rows=12055 loops=1 Planning time: 83.668 ms Execution time: 301.567 ms Planning time: 6.734 ms Execution time: 535.688 ms (341 rows) Time: 944.180 ms