Wir haben die Abfrage unten. Die Verwendung eines LINKEN OUTER-Joins dauert 9 Sekunden. Wenn Sie LINKE ÄUSSERUNG zu LINKE INNER ändern, wird die Ausführungszeit auf 2 Sekunden reduziert, und die gleiche Anzahl der Zeilen wird zurückgegeben. Da die gleiche Anzahl von Zeilen aus der dbo.Accepts-Tabelle unabhängig vom Join-Typ verarbeitet wird, warum sollte die äußere 3x länger dauern?LEFT INNER JOIN und LEFT OUTER JOIN - Warum dauert der OUTER länger?
SELECT CONVERT(varchar, a.ReadTime, 101) as ReadDate,
a.SubID,
a.PlantID,
a.Unit as UnitID,
a.SubAssembly,
m.Lot
FROM dbo.Accepts a WITH (NOLOCK)
LEFT OUTER Join dbo.Marker m WITH (NOLOCK) ON m.SubID = a.SubID
WHERE a.LastModifiedTime BETWEEN @LastModifiedTimeStart AND @LastModifiedTimeEnd
AND a.SubAssembly = '400'
Ich war mir nicht bewusst, dass es so etwas wie eine "LINKE INNER JOIN" gab. Was tut es? –
Ich vermute, dass das 'LEFT' von' LEFT INNER' entfernt wird und es ist nur ein 'INNER JOIN'. –
Mit SQL Server 2005 kann ich keine Abfrage mit 'LINKEN INNEREN JOIN 'ausführen - ich bekomme eine" falsche Syntax nahe dem Schlüsselwort' INNER '"Fehler. Welche Version von SQL Server verwenden Sie? Wenn 2005+, laufen Sie auf einer herabgestuften Kompatibilitätsebene? –