Re: Tunning PostgreSQL performance for views on Windows

From: "Merlin Moncure" <mmoncure(at)gmail(dot)com>
To: "Ranieri Mazili" <ranieri(dot)oliveira(at)terra(dot)com(dot)br>
Cc: pgsql-general(at)postgresql(dot)org, pgsql-sql(at)postgresql(dot)org
Subject: Re: Tunning PostgreSQL performance for views on Windows
Date: 2007-07-27 13:38:45
Message-ID: b42b73150707270638y5f09b767i510ea2d86cbf950a@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-sql

On 7/26/07, Ranieri Mazili <ranieri(dot)oliveira(at)terra(dot)com(dot)br> wrote:
> Hello,
>
> I'm developing a BI and as database it's using postgresql 8.2, how data
> are very detailed, I'm creating a view to consolidate the most important
> data, but the performance of view is very poor, 1 minute to perform more
> or less without where clause.
> I need to know how I can increase the performance, if exist some option
> to do cache, because the view will change only one time per day.
> My configuration is default, without modifications after install.
> I'm using windows 2003 server with a dell server with 4GB of memory.

PostgreSQL views are expanded on the fly by the planner...so
optimizing for views is no different than standard query optimization.
Views allow you to layer queries in a logical way but during
execution are treated a single query (think: c macros).

Set returning functions are different...they are a black box to the
planner in most cases and the planner can't optimize through them.

> To create the view, I created some functions, and then perform they on
> one select like:
> select A.field1, B.field2, ... from function_A() A, function_B() B...
> Is this the best way to do it?

So, the first thing I would look at would be to (if possible) rewrite
function_a, b, etc as views and expose fields you filter on to the
outer query in the join. While you can expose fields similarly as
parameters to the function, there are various tricks that the planner
can do that are not possible if some of the sql is hidden away into
functions.

Beyond that, you will have to give more detailed information about
your problem to get more specific advise.

merlin

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Merlin Moncure 2007-07-27 13:59:03 Re: upgrade to 8.2.? or implement Slony, which first?
Previous Message James B. Byrne 2007-07-27 13:04:41 Re: ssl connections to postgresql

Browse pgsql-sql by date

  From Date Subject
Next Message Osvaldo Rosario Kussama 2007-07-27 15:47:25 Re: problem join
Previous Message Kristo Kaiv 2007-07-27 09:23:22 Re: strange result for select * from table where id=random()*900