Re: Query optimization path

From: Bruno Wolff III <bruno(at)wolff(dot)to>
To: Gaetano Mendola <mendola(at)bigfoot(dot)com>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: Query optimization path
Date: 2003-01-12 17:01:08
Message-ID: 20030112170108.GB31080@wolff.to
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Sun, Jan 12, 2003 at 17:31:34 +0100,
Gaetano Mendola <mendola(at)bigfoot(dot)com> wrote:
> Hi all,
>
> I have the following query:
>
> SELECT count(1)
> FROM providers p JOIN class_default cd USING (id_provider)
> JOIN user_data ud USING (id_class)
> JOIN v_user_traffic ut USING (id_user)
> WHERE id_user_status in (4,5) AND
> p.company = 'XXXXX';
>
> is not slow but I notice that if I do explain analyze with the table
> reordered
> inside the select in another way the cost change.

Using "JOIN" fixes the order that tables are joined in. If you are
just doing inner joins, then you probably don't want to use the "JOIN"
keyword. The exception being when there are so many tables being joined
that you want to manually specify at least some of the join ordering in
order to help out the planner.

Outer (and left and right) joins are generally not associative, so the
"JOIN" keyword being required for those cases isn't generally going to
be a problem.

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Gaetano Mendola 2003-01-12 17:07:14 Re: Query optimization path
Previous Message Peter Eisentraut 2003-01-12 16:54:47 Re: crypto?