Thread: optimizer parameters

optimizer parameters

From
Radhya sahal
Date:
Dear ,all
i would to ask you about how postgresql optimizer parameters :-
1- random page cost

2- cpu tuple cost

3- cpu operator cost

4- cpu index tuple cost

5- effective cache size

play as parameters in cost estimator equation 

i imagine that cost function is the same as

f(x,y,z,....)=ax+by......

cost(cpu tuple cost,cpu operator cost,....)

can any one help me to know the equation that cost estimator used it..

My regard

Radhya,,,,

 

Re: optimizer parameters

From
Tomas Vondra
Date:
There's a quite nice description in the docs:

http://www.postgresql.org/docs/9.0/interactive/row-estimation-examples.html

and a some more details for indexes:

http://www.postgresql.org/docs/9.0/interactive/index-cost-estimation.html

A bit more info about how this is used is available in this presentation:

http://momjian.us/main/writings/pgsql/internalpics.pdf

But if you need more details, then I quess the best approach to get it
is to read the sources (search for the cost estimation etc.).

regards
Tomas

Dne 10.4.2011 20:22, Radhya sahal napsal(a):
> Dear ,all
> i would to ask you about how postgresql optimizer parameters :-
> 1- random page cost
>
> 2- cpu tuple cost
>
> 3- cpu operator cost
>
> 4- cpu index tuple cost
>
> 5- effective cache size
>
> play as parameters in cost estimator equation
>
> i imagine that cost function is the same as
>
> f(x,y,z,....)=ax+by......
>
> cost(cpu tuple cost,cpu operator cost,....)
>
> can any one help me to know the equation that cost estimator used it..
>
> My regard
>
> Radhya,,,,
>
>
>


Re: optimizer parameters

From
Greg Smith
Date:
On 04/10/2011 07:27 PM, Tomas Vondra wrote:
> But if you need more details, then I quess the best approach to get it
> is to read the sources (search for the cost estimation etc.).
>

There's a small fully worked out example of this in my book too, where I
duplicate the optimizer's EXPLAIN cost computations for a simple query.
The main subtle thing most people don't appreciate fully is how much the
optimizer takes into account two things:  the selectivity of operators,
and the expected size of the data being moved around.  For example, a
lot of the confusion around "why didn't it use my index?" comes from not
noticing the size of the index involved, and therefore how expensive its
page cost is considered to be.

--
Greg Smith   2ndQuadrant US    greg@2ndQuadrant.com   Baltimore, MD
PostgreSQL Training, Services, and 24x7 Support  www.2ndQuadrant.us
"PostgreSQL 9.0 High Performance": http://www.2ndQuadrant.com/books