Here is the actual explain analyze of the query on the smaller dataset
which I have been using for the recent testing.
test=# explain analyze create table _tmp0 as select * from ( select *, (select healpixid from idt_match as m
wherem.transitid=o.transitid) as x from idt_photoobservation_small as o offset 0 ) as y
wherex%16=0 order by x; QUERY PLAN
p----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Sort (cost=63835201.73..63835214.23 rows=5000 width=498) (actual time=8203.041..8252.216 rows=173696 loops=1) Sort
Key:y.x Sort Method: quicksort Memory: 182555kB -> Subquery Scan on y (cost=0.00..63834894.54 rows=5000
width=498)(actual time=0.102..7602.947 rows=173696 loops=1) Filter: ((y.x % 16::bigint) = 0) Rows
Removedby Filter: 826304 -> Limit (cost=0.00..63819894.51 rows=1000002 width=490) (actual
time=0.041..7296.401rows=1000000 loops=1) -> Seq Scan on idt_photoobservation_small o
(cost=0.00..63819894.51rows=1000002 width=490) (actual time=0.038..7094.555 rows=1000000 loops=1)
SubPlan1 -> Index Scan using idt_match_transitid_idx on idt_match m (cost=0.00..63.74 rows=1
width=8)(actual time=0.003..0.004 rows=1 loops=1000000) Index Cond: (transitid =
o.transitid)Total runtime: 8908.631 ms
*****************************************************
Sergey E. Koposov, PhD, Research Associate
Institute of Astronomy, University of Cambridge
Madingley road, CB3 0HA, Cambridge, UK
Tel: +44-1223-337-551 Web: http://www.ast.cam.ac.uk/~koposov/