From: | K C Lau <kclau60(at)netvigator(dot)com> |
---|---|
To: | "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com> |
Cc: | <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: SELECT LIMIT 1 VIEW Performance Issue |
Date: | 2005-09-22 14:56:47 |
Message-ID: | 6.2.1.2.0.20050922224720.02c365f8@localhost |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
At 22:37 05/09/22, Merlin Moncure wrote:
> > >create or replace view VCurPlayer as select * from Player a
> > >where a.AtDate = (select Max(b.AtDate) from Player b where a.PlayerID=
> > >b.PlayerID);
>
>Here is a trick I use sometimes with views, etc. This may or may not be
>effective to solve your problem but it's worth a shot. Create one small
>SQL function taking date, etc. and returning the values and define it
>immutable. Now in-query it is treated like a constant.
We don't use functions as a rule, but I would be glad to give it a try.
I would most appreciate if you could define a sample function and rewrite
the VCurPlayer view above. Both PlayerID and AtDate are varchar fields.
>Another useful application for this feature is when you have nested
>views (view 1 queries view 2) and you need to filter records based on
>fields from view 2 which are not returned in view 1. Impossible?
>
>in view 2 add clause where v2.f between f_min() and f_max(), them being
>immutable functions which can grab filter criteria based on inputs or
>values from a table.
>
>Merlin
Best regards,
KC.
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2005-09-22 15:41:14 | Re: SELECT LIMIT 1 VIEW Performance Issue |
Previous Message | K C Lau | 2005-09-22 14:39:29 | Re: SELECT LIMIT 1 VIEW Performance Issue |