MySQL Forums
Forum List  »  Performance

Re: Slow Left Outer Join
Posted by: Jay Pipes
Date: December 20, 2005 01:09PM

OK, looks good, as far as the EXPLAIN goes. You've got very few records in the PR table, so the index on ReportDate isn't used as a table scan is more effective. Make this small change to the query and tell me if you get the correct results:

SELECT PR.ReportDate
, PR.WorkDay
, PRS.ShiftName
, SUM((PRU.UnitsCompleted/JR.TotalUnits)*B.Price) AS TotalPrice
, PR.ProductionReportID
, (SUM((PRU.UnitsCompleted/JR.TotalUnits)*B.Price)/(PR.NumSawyers +
PR.NumBuilders + PR.NumForkliftDrivers + PR.NumShipping)/(PR.NumHours)) AS HourlyRate
FROM ProductionReport PR
INNER JOIN ProductionReport_Shift PRS
ON PR.ProductionReport_ShiftID = PRS.ProductionReport_ShiftID
AND PRS.ProductionLocationID = '2'
LEFT JOIN ProductionReport_Unit PRU
ON PR.ProductionReportID = PRU.ProductionReportID
LEFT JOIN JobRelease JR
ON PRU.JobReleaseID = JR.JobReleaseID
INNER JOIN Job J
ON JR.JobID = J.JobID
INNER JOIN Batch B
ON JR.JobReleaseID = B.JobReleaseID
WHERE PR.ReportDate BETWEEN '2005-12-01' AND '2005-12-31'
GROUP BY
PR.ProductionReport_ShiftID
, PR.ReportDate
ORDER BY PR.ProductionReportID;

I'm not sure whether the EXPLAIN will change negatively, however, as this is a strange join combination, IMHO. Worth a try, though... let me know how it tunrs out.

Jay Pipes
Community Relations Manager, North America, MySQL Inc.

Got Cluster? http://www.mysql.com/cluster
Personal: http://jpipes.com

Options: ReplyQuote


Subject
Views
Written By
Posted
7860
December 19, 2005 06:10PM
3111
December 19, 2005 08:40PM
2684
December 20, 2005 12:28PM
Re: Slow Left Outer Join
2575
December 20, 2005 01:09PM
2253
December 20, 2005 01:31PM
2214
December 20, 2005 03:41PM
2045
December 20, 2005 04:17PM
2236
December 20, 2005 04:27PM
3326
December 20, 2005 04:36PM
2009
December 20, 2005 05:20PM
1930
December 20, 2005 05:38PM
2067
December 20, 2005 05:49PM
2133
December 20, 2005 04:27PM
1783
December 23, 2005 02:32PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.