Re: About method of PostgreSQL's Optimizer

From: Neil Conway <neilc(at)samurai(dot)com>
To: pryscila(dot)lista(at)gmail(dot)com
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: About method of PostgreSQL's Optimizer
Date: 2005-09-13 23:16:26
Message-ID: 43275DCA.7040006@samurai.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-performance

Pryscila B Guttoski wrote:
> On my master course, I'm studying the PostgreSQL's optimizer.
> I don't know if anyone in this list have been participated from the
> PostgreSQL's Optimizer development, but maybe someone can help me on this
> question.

pgsql-hackers might be more appropriate.

> PostgreSQL generates all possible plans of executing the query (using an
> almost exhaustive search), then gives a cost to each plan and finally the
> cheapest one is selected for execution.
> There are other methods for query optimization, one of them is based on plan
> transformations (for example, using A-Star algorithm) instead of plan
> constructions used by PostgreSQL.

Right, the main query planner uses a nearly-exhaustive search. For
queries with many joins (when the cost of an exhaustive search would be
prohibitive), "GEQO" is used, which uses a genetic algorithm to avoid an
exhaustive search of the solution space.

> Does anyone know why this method was choosen?

As far as I know, the main planner algorithm is fairly standard and is
mainly different from System R's canonical algorithm in the details,
like whether non-left-deep plans are pruned.

> Are there any papers or researches about it?

There are many papers on the System R algorithm and similar techniques,
which should explain the basic motivations for the design. I'm not aware
of any papers specifically on the PostgreSQL query optimizer, although
there have been a few presentations on it:

http://neilc.treehou.se/optimizer.pdf
http://conferences.oreillynet.com/presentations/os2003/lane_tom.pdf

-Neil

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Joshua D. Drake 2005-09-13 23:23:02 Re: About method of PostgreSQL's Optimizer
Previous Message Tatsuo Ishii 2005-09-13 23:02:16 inverse OR distributive law?

Browse pgsql-performance by date

  From Date Subject
Next Message Joshua D. Drake 2005-09-13 23:23:02 Re: About method of PostgreSQL's Optimizer
Previous Message Pryscila B Guttoski 2005-09-13 22:50:42 About method of PostgreSQL's Optimizer