From: Matteo Beccati <php@beccati.com>
To: pgsql-performance@postgresql.org
Subject: ORDER BY and LIMIT not propagated on inherited tables / UNIONs
Date: Fri, 02 Sep 2005 12:20:57 +0200
Message-ID: <43182789.4070307@beccati.com> (raw)
Hi,
I'm using inherited tables to partition some data which can grow very
large. Recently I discovered that a simple query that on a regular table
would use an index was instead using seq scans (70s vs a guessed 2s).
The well known query is:
SELECT foo FROM bar ORDER BY foo DESC LIMIT 1
(The same applies for SELECT MIN(foo) FROM bar using 8.1)
The query plan generated when running the query on a table which has
inheritance forces the planner to choose a seq_scan for each table.
Wouldn't be a good thing to also promote ORDER BYs and LIMITs to each
subscan (like WHERE does)?
I needed a quick solution, so I wrote a function which looks each
inherited table separately and my problem is partially solved, but I
think that a (hopefully) little change in the optimizer could be advisable.
Attached are some EXPLAIN ANALYZE outputs of my suggestion.
Best regards
--
Matteo Beccati
http://phpadsnew.comhttp://phppgads.comAttachments:
order_limit_inheritance.txt (plain/text, 12.0K) download
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: php@beccati.com
Subject: Re: ORDER BY and LIMIT not propagated on inherited tables / UNIONs
In-Reply-To: <43182789.4070307@beccati.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