Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
VFP8 OUTER JOIN evaluated before WHERE
Message
 
To
07/11/2002 18:23:10
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
00720072
Message ID:
00720341
Views:
11
Peter,

Okay I just tested this and you're very right. It appears that RUSHMORE optimization of the WHERE is simply turned off on outer joins. And even on inner joins it appears to be a LOT slower, although it reports full optimization.

Haven't fully tested this, but this is a show stopper, as far as I'm concerned. If these results hold out in more testing, there is no way I could upgrade existing apps to 8.0 without serious performance problems.

I was thinking that maybe they changed how WHERE filters outer joins, since a filter on the outer cursor effectivly turns it into an inner join, but they didn't change this behaviour.

Has no one else brought this up yet? This is a biggie.



>Ok, I have a small internal application that I recompiled in VFP8. Mostly, no problems. BUT, I have a SELECT which is *really* slow in VFP8, and fast in VFP7.
>
>
>*Simple example:
>
>*(techs table: 25 records)
>*(call table: 150,000 records)
>
>SELECT ALL;
>"" AS NAME;
>FROM call LEFT OUTER JOIN techs ON init = UPPER(ALLTRIM(suppersn)); && this is slow.
>WHERE .F.;
>INTO CURSOR temp_stats
>
>This should be really fast, as the WHERE should be evaluated before the JOIN. But it isn't (or doesn't seem to be).
>
>Now, in VFP7, this takes at least 0.00 seconds. (The real query takes .27 seconds)
>
>VFP8, at least .57 seconds. (the real query takes > 4 seconds)
>
>Any thoughts?
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform