Re: Hash join gets slower as work_mem increases?

From: Albe Laurenz
Subject: Re: Hash join gets slower as work_mem increases?
Date: ,
Msg-id: A737B7A37273E048B164557ADEF4A58B537DD013@ntex2010i.host.magwien.gv.at
(view: Whole thread, Raw)
In response to: Re: Hash join gets slower as work_mem increases?  (Tomas Vondra)
List: pgsql-performance

Tree view

Hash join gets slower as work_mem increases?  (Albe Laurenz, )
 Re: Hash join gets slower as work_mem increases?  (Pavel Stehule, )
 Re: Hash join gets slower as work_mem increases?  (Tomas Vondra, )
  Re: Hash join gets slower as work_mem increases?  (Albe Laurenz, )
   Re: Hash join gets slower as work_mem increases?  (Tomas Vondra, )
    Re: Hash join gets slower as work_mem increases?  (Albe Laurenz, )

Tomas Vondra wrote:
> Yes, that's clearly the culprit here. In both cases we estimate here are
> only ~4000 tuples in the hash, and 9.3 sizes the hash table to have at
> most ~10 tuples per bucket (in a linked list).
> 
> However we actually get ~3M rows, so there will be ~3000 tuples per
> bucket, and that's extremely expensive to walk. The reason why 100MB is
> faster is that it's using 2 batches, thus making the lists "just" ~1500
> tuples long.
> 
> This is pretty much exactly the reason why I reworked hash joins in 9.5.
> I'd bet it's going to be ~20x faster on that version.

Thank you for the explanation!

Yours,
Laurenz Albe


pgsql-performance by date:

From: Albe Laurenz
Date:
Subject: Re: Hash join gets slower as work_mem increases?
From: Jérôme Augé
Date:
Subject: Understanding ANALYZE memory usage with "big" tsvector columns