Re: Problem with a view (not lazy ;) - Mailing list pgsql-general

From Tom Lane
Subject Re: Problem with a view (not lazy ;)
Date
Msg-id 6837.1013013968@sss.pgh.pa.us
Whole thread Raw
In response to Problem with a view (not lazy ;)  (bombadil@wanadoo.es)
List pgsql-general
bombadil@wanadoo.es writes:
>  In my tests with views I have found a problem that can't explain.

Are those EXPLAINs really for equivalent queries?  I find it very
suspicious that the estimated number of rows retrieved from "ta" is
so different in the two cases.  I wonder whether you used the same
range of "fecha" in both cases.

>     from t�cnico_aviso ta
>         join empleado e on ta.empleado = e.cod
>         join presupuesto p on ta.aviso = p.aviso
>         join aviso a
> ->            left join empresa em on a.empresa = em.cod
>             on ta.aviso = a.n�mero;

Did you really mean to do it that way, and not as

    from t�cnico_aviso ta
        join empleado e on ta.empleado = e.cod
        join presupuesto p on ta.aviso = p.aviso
        join aviso a on ta.aviso = a.n�mero
        left join empresa em on a.empresa = em.cod;

The way you wrote it forces the a-to-em left join to be done first,
which means it will generate lots of join rows that probably won't
be of any use.  I suspect you want to do the left join last not first.
See
http://www.ca.postgresql.org/users-lounge/docs/7.1/postgres/explicit-joins.html

            regards, tom lane

pgsql-general by date:

Previous
From: Doug McNaught
Date:
Subject: Re: Commit , Rollback
Next
From: Justin Clift
Date:
Subject: Re: 7.1.3 : copy from stdin is very slow!