Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
LEFT JOIN and complex criteria
Message
 
 
To
25/09/2006 15:44:26
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01156530
Message ID:
01157079
Views:
19
>>>>>I have trust in this
>>>>>
>>>>>SELECT TI.cTrans_fk, TI.cInsurances_fk;
>>>>>    FROM (select curTemp.cTrans_pk , max(T.iSequence_Number) iSequence_Number;
>>>>>	    	from curTemp JOIN Trans_Insurances T ON curTemp.cTrans_pk = T.cTrans_fk ;
>>>>>		    GROUP BY 1) X ;
>>>>>		    JOIN Trans_Insurances TI ;
>>>>>                 ON TI.cTrans_fk = X.cTrans_pk AND TI.iSequence_Number = X.iSequence_Number;
>>>>> into cursor curTemp1
>>>>>
>>>>
>>>>Seems to be a little bit faster, but still quite slow...
>>>
>>>post sys(3054) and current exec time
>>
>>Time: 3.804
>>SELECT TI.cTrans_fk as cTrans_pk, ;
>>TI.cInsurances_fk ;
>>FROM (select curTemp.cTrans_pk, max(T.iSequence_Number) iSequence_Number ;
>>from curTemp JOIN Trans_Insurances T ;
>>ON curTemp.cTrans_pk = T.cTrans_fk GROUP BY 1) X ;
>>JOIN Trans_Insurances TI ;
>>ON TI.cTrans_fk = X.cTrans_pk AND ;
>>TI.iSequence_Number = X.iSequence_Number into cursor curTemp1
>>
>>Rushmore optimization level for intermediate result: none
>>Rushmore optimization level for table t: none
>>Joining intermediate result and table t using index tag Ctrans_fk
>>Rushmore optimization level for intermediate result: none
>>Rushmore optimization level for table ti: none
>
>
>Joining intermediate result and table ti using temp index && !!!! temp index !!!!!
>
>
>>
>>I'm running everything locally with SET DELETED ON.
>
>for testing try and post sys(3054)
>
>
>SELECT TI.cTrans_fk as cTrans_pk, ;
>TI.cInsurances_fk ;
>FROM (select curTemp.cTrans_pk, max(T.iSequence_Number) iSequence_Number ;
>from curTemp JOIN Trans_Insurances T ;
>ON curTemp.cTrans_pk = T.cTrans_fk GROUP BY 1) X ;
>JOIN Trans_Insurances TI ;
>ON TI.cTrans_fk = X.cTrans_pk into cursor curTemp1
>
>*expected
>Rushmore optimization level for intermediate result: none
>Rushmore optimization level for table t: none
>Joining intermediate result and table t using index tag Ctrans_fk
>Rushmore optimization level for intermediate result: none
>Rushmore optimization level for table ti: none
>Joining intermediate result and table ti using index tag Ctrans_fk
>
>
In other words, the AND condition on iSequence_Number makes this select much slower.
If it's not broken, fix it until it is.


My Blog
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform