2015-06-11 23:28 GMT+09:00 Robert Haas <[email protected]>: > On Wed, Jun 10, 2015 at 10:57 PM, Kouhei Kaigai <[email protected]> wrote: >> The attached patch replaces this palloc0() by MemoryContextAllocHuge() + >> memset(). >> Indeed, this hash table is constructed towards the relation with >> nrows=119994544, >> so, it is not strange even if hash-slot itself is larger than 1GB. > > You forgot to attach the patch, I think. > Oops, I forgot to attach indeed.
> It looks to me like the size > of a HashJoinTuple is going to be 16 bytes, so 1GB/16 = ~64 million. > That's a lot of buckets, but maybe not unreasonably many if you've got > enough memory. > EXPLAIN says, this Hash node takes underlying SeqScan with 119994544 (~119 million) rows, but it is much smaller than my work_mem setting. -- KaiGai Kohei <[email protected]>
hashslot-allocation-by-huge-alloc.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
