Wenn ich im SELECT zwei WHERE berücksichtige:
SELECT items.Brand,
SUM(
(SELECT SUM(its.PhysicalStock)
FROM items_stock AS its
WHERE its.ItemNrInt = items.ItemNrInt
)
) AS stockValue
FROM items
LEFT JOIN ( SELECT ItemNrInt,MAX(OrderQty),MAX(FullPrice),MAX(OrderDate),MAX(ItemPriceNoVAT),MAX(Status)
FROM invoicelines
GROUP BY ItemNrInt
ORDER BY NULL ) invoicelines
ON (invoicelines.ItemNrInt = items.ItemNrInt)
WHERE items.attr_saison = '1017' AND items.attr_department = '6'
GROUP BY items.Brand
dann ist der Select fast nur 2sec unterwegs. Auch wenn ich z.B. nach einem ItemNamen als TeilString suche ( z.B. WHERE items.ItemName LIKE 'S%' ) - dann geht es mit knapp 10Sekunden auch noch recht flott.
Mit der WHERE Klausel auf attr_gender oder attr_department ca. 70 - 90 Sekunden
Mit gar keiner WHERE Einschränkunge ca. 190sec - auch schneller, immerhin :)
Ist ja klar - je mehr Einschränkungen - desto weniger Daten - also auch schneller
Die Invoicelines benötige ich für einen anderen Teil der eigentlich Abfrage - die Stockwerte sind nur ein Stück vom ganzen - der ganze Select ist deutlich länger.
Grüße
Mark