"Mike Biamonte" <mike(at)dbeat(dot)com> writes:
> The queries I need to run on my 200 million transactions are relatively
> simple:
> select month, count(distinct(cardnum)) count(*), sum(amount) from
> transactions group by month;
count(distinct) is not "relatively simple", and the current
implementation isn't especially efficient. Can you avoid that
construct?
Assuming that "month" means what it sounds like, the above would result
in running twelve parallel sort/uniq operations, one for each month
grouping, to eliminate duplicates before counting. You've got sortmem
set high enough to blow out RAM in that scenario ...
regards, tom lane