Thread: Re: Q on "Re: select is fast, update based on same where clause is slow "

Re: Q on "Re: select is fast, update based on same where clause is slow "

From
"Josh Berkus"
Date:
Bladvin,

> I understand why did Jeff's original solution not work. I understand
> why yours do.
> 
> But could you please explain me how the 74000^2 can be calculated
> for this original query?:

Sure.  In Jeff's original query, the updated instance of the table
(sessions2) and the referenced instance (s) are seperate, without any
JOIN or WHERE conditions to link them.  Under these conditions, SQL
engines do a CROSS JOIN, where every single one of the rows in the first
table is matched against every single one of the rows in the second
table.  This gives you a result set of the number of rows in sessions2 *
the number of rows in s.  74,000^2  Get it?

Example:

TableA:
1    A
2    B

Table B
7    H
8    G

SELECT * FROM TableA, TableB
1    A    7    H
1    A    8    G
2    B    7    H
2    B    8    G

-Josh

-Josh


______AGLIO DATABASE SOLUTIONS___________________________                                      Josh Berkus Complete
informationtechnology      josh@agliodbs.com  and data management solutions       (415) 565-7293 for law firms, small
businesses       fax 621-2533   and non-profit organizations.      San Francisco