pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Gregory Stark <stark@enterprisedb.com>
To: Joshua Shanks <jjshanks@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Craig Ringer <craig@postnewspapers.com.au>
Cc: pgsql-performance@postgresql.org
Subject: Re: query planner not using the correct index
Date: Thu, 07 Aug 2008 23:38:07 +0100
Message-ID: <874p5wsb74.fsf@oxford.xeocode.com> (raw)
In-Reply-To: <84f0acdb0808071501n15b0182ga7eca7b1be37d705@mail.gmail.com>
References: <84f0acdb0808061435q5ebb607cjc311f1eb4da841a@mail.gmail.com>
	<489A623A.4090400@postnewspapers.com.au>
	<84f0acdb0808062014p29cf7482ied332225a0a92c63@mail.gmail.com>
	<489A6AF5.50908@postnewspapers.com.au>
	<84f0acdb0808070811l43a3da9eq240d272f8ddd105c@mail.gmail.com>
	<27696.1218143560@sss.pgh.pa.us>
	<84f0acdb0808071501n15b0182ga7eca7b1be37d705@mail.gmail.com>

"Joshua Shanks" <jjshanks@gmail.com> writes:

> Those 3 values in reality and in the stats account for 98% of the
> rows. actual distinct values are around 350

Measuring n_distinct from a sample is inherently difficult and unreliable.
When 98% of your table falls into those categories it's leaving very few
chances for the sample to find many other distinct values. 

I haven't seen the whole thread, if you haven't tried already you could try
raising the statistics target for these columns -- that's usually necessary
anyways when you have a very skewed distribution like this.

> It seems like the planner would want to get the result set from
> bars.bars_id condition and if it is big using the index on the join to
> avoid the separate sorting, but if it is small (0-5 rows which is our
> normal case) use the primary key index to join and then just quickly
> sort. Is there any reason the planner doesn't do this?

Yeah, Heikki's suggested having a kind of "branch" plan node that knows how
where the break-point is between two plans and can call the appropriate one.
We don't have anything like that yet.

-- 
  Gregory Stark
  EnterpriseDB          http://www.enterprisedb.com
  Ask me about EnterpriseDB's On-Demand Production Tuning



view thread (13+ messages)  latest in thread

Message-ID: <874p5wsb74.fsf@oxford.xeocode.com>
Permalink:  ../874p5wsb74.fsf@oxford.xeocode.com/
Also on:    postgresql.org/message-id/874p5wsb74.fsf@oxford.xeocode.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: stark@enterprisedb.com, jjshanks@gmail.com, tgl@sss.pgh.pa.us, craig@postnewspapers.com.au
  Subject: Re: query planner not using the correct index
  In-Reply-To: <874p5wsb74.fsf@oxford.xeocode.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox