Jeff Davis wrote:
On Fri, 2010-09-10 at 08:10 -0700, Chris Travers wrote:
Just adding my voice to the "fix it" camp.  Is there any reason the
table scans in this sort of thing cannot be independently planned?

I don't think it's about independent planning. For instance, AVG clearly
can't be planned this way, there are particular properties of MAX that
allow the optimization:

  1. MAX(x) can be rewritten as: ORDER BY x DESC LIMIT 1
  2. The MAX of set S is the MAX of the MAXes of each partition of S

The optimizer knows about the former, but not the latter.

Regards,
        Jeff Davis

Jeff, that's the problem. Functions like "MAX" are rather ordinary and frequently used. Using sequential scan to read all partitions is the wrong thing to do. I agree that AVG() cannot be computed using index but MAX() and MIN() can. I will send you personally 2 versions of a script that I am still writing, just to see to what extent do I go to get the necessary performance. Optimizer definitely needs fixes when it comes to partitions.

--

Mladen Gogala Sr. Oracle DBA
1500 Broadway
New York, NY 10036
(212) 329-5251
http://www.vmsinfo.com The Leader in Integrated Media Intelligence Solutions




--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to