Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Cartesian Product on Inner Join?
Message
 
To
12/12/2003 11:55:55
Dave Nantais
Light speed database solutions
Ontario, Canada
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
00858613
Message ID:
00858649
Views:
11
>>I am using SYS(3054) to check the Rushmore Optimization Level on an inner join.
>>All info displayed indicates that the two tables are fully optimized.
>>
>>When there is at least 1 record selected the last line displays:
>>'joining table a and table b using index tab x'.
>>When there are no records selected the last line displays:
>>'joining table a and table b (Cartesian product)'.
>>
>>Is the SQL statement fully optimized?
>>
>>TIA.
>
>Think of the mathematical version of Cartesian product when you see that final line. That is, when table number one has X records and table number two has Y records their Cartesian product contains X*Y records. For each record in table number one it is joined to every record in table number two. The result of the join contains X*Y records. I do not know if officially speaking it is 'RUSHMORE OPTIMIZED' but performing a Cartesian product of two tables get VERY SLOW when the tables get large. For example, two tables of one thousand records each result in a cursor of one million records.

Dave,

When the query * does * generate records, it contains * only * the records I expected to see (about 6). If I multiply the # of records in table 'A' by 'B', there are hundreds.
Are you referring to an intermediate result set (when you say x*y) or have I misunderstood?
Regards,

Allan Coganovitch
allanc@proven-solutions.com
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform