Hi guys,
I'm one of the nightly sources of 9.2devel. I was trying some simple
queries and I realized something:
stuff=# explain (analyze true, costs true, buffers true, timing true,
verbose true) select count(i) from lot_of_values; QUERY
PLAN
-------------------------------------------------------------------------------------------------------------------------------------------Aggregate
(cost=213496.00..213496.01 rows=1 width=4) (actual
time=60400.788..60400.791 rows=1 loops=1) Output: count(i) Buffers: shared hit=2400 read=86096 -> Seq Scan on
public.lot_of_values (cost=0.00..188496.00
rows=10000000 width=4) (actual time=0.371..32227.791 rows=10000000
loops=1) Output: i, t1, r1, r2, r3, d1 Buffers: shared hit=2400 read=86096Total runtime: 60402.460 ms
(7 rows)
stuff=# set enable_seqscan=off;
SET
stuff=# explain (analyze true, costs true, buffers true, timing true,
verbose true) select count(i) from lot_of_values;
QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------Aggregate
(cost=351292.03..351292.04 rows=1 width=4) (actual
time=63278.472..63278.475 rows=1 loops=1) Output: count(i) Buffers: shared hit=1 read=110379 -> Index Only Scan
usinglot_of_values_pkey on
public.lot_of_values (cost=0.00..326292.03 rows=10000000 width=4)
(actual time=42.028..35217.460 rows=10000000 loops=1) Output: i Heap Fetches: 10000000 Buffers:
sharedhit=1 read=110379Total runtime: 63278.720 ms
(8 rows)
I know, still development. Just wanna know if there will be an
improvement for this in the next patches or the idea is to maintain
this behaviour.
Cheers and thanks for the amazing work you all had done!
--
--
Emanuel Calvo