From: | "Adam Rich" <adam(dot)r(at)sbcglobal(dot)net> |
---|---|
To: | "'Robert Haas'" <robertmhaas(at)gmail(dot)com>, <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: why hash on the primary key? |
Date: | 2008-11-28 20:04:58 |
Message-ID: | 0b3901c95194$97925890$c6b709b0$@r@sbcglobal.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
> I'm seeing a lot of plans in my database that look like this:
> It seems very strange for the planner to decide to build an in-memory
> hash table on a column that is already indexed (the primary key, no
> less!). But this is happening A LOT - I often see plans where a
> majority of the joins are executed this way (and they're not all
> self-joins either...). It seems like the planner is concluding that
> it's going to need most or all of the pages in the table anyway, and
> that building a hash table as it goes is quicker than reading the
> index pages in from disk. On a simple query like the above, setting
> enable_seqscan to off or random_page_cost to 1 generates the expected
> plan:
> Experimentation shows this is actually about 25% faster. But, this is
> kind of a blunt instrument, and my attempts to fiddle with various
> parameters have not been real succesful in generating better plans for
> more complicated examples.
>
> Any suggestions/explanations?
>
> ...Robert
Could you send the output of these two queries using "explain analyze"
instead of plain explain?
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2008-11-28 20:16:36 | Re: why hash on the primary key? |
Previous Message | Robert Haas | 2008-11-28 19:55:22 | why hash on the primary key? |