Re: totally different plan when using partitions

From: Richard Huxton <dev(at)archonet(dot)com>
To: Scara Maccai <m_lists(at)yahoo(dot)it>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: totally different plan when using partitions
Date: 2009-08-13 07:36:38
Message-ID: 4A83C286.6090205@archonet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Scara Maccai wrote:
>
> same query, but using postgresql's partition pruning ("2"):
>
> explain analyze
> select nome1,
> thv3tralacc,
> dltbfpgpdch
> FROM cell_bsc_60_0610 as cell_bsc
> left outer join teststscell73 as data on data.ne_id=cell_bsc.nome1
> left outer join teststscell13 as data1 on data1.ne_id=cell_bsc.nome1 and data1.time=data.time
> where
>
> data.time >=cell_bsc.starttime and data.time <=cell_bsc.endtime and
> data.time between '2006-10-01 00:00:00' and '2006-10-06 00:00:00'
> and data1.time >=cell_bsc.starttime and data1.time <=cell_bsc.endtime
> and data1.time between '2006-10-01 00:00:00' and '2006-10-06 00:00:00'
> and cell_bsc.nome2=2
>
>
> explain analyze:
>
> http://explain-analyze.info/query_plans/3807-query-plan-2511
>
>
> The second version is A LOT slower (10x). But the 2 queries should be identical... why the two totally different plans???

Well, the first version was expecting about 400 rows, the second 15000,
so it's not surprising that they have different plans.

I'm not sure whether the planner is smart enough to cope with the
multiple tests on time vs the partitioning and realise it can use your
index on the partition.

I'm assuming the partition is defined as being "between '2006-10-01
00:00:00' and '2006-10-06 00:00:00'" - strikes me as an odd interval,
and you don't say anywhere.

You _might_ have a better plan by moving the partitioned tests into
subqueries:
FROM cell_bsc_60_0610 as cell_bsc
left outer join (
SELECT ne_id FROM teststscell73 WHEREtime between '2006-10-01
00:00:00' and '2006-10-06 00:00:00') as data on data.ne_id=cell_bsc.nome1

--
Richard Huxton
Archonet Ltd

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Greg Smith 2009-08-13 08:00:06 Re: Help interpreting pg_stat_bgwriter output
Previous Message Scara Maccai 2009-08-13 07:16:13 R: totally different plan when using partitions