Könnte mir bitte jemand helfen, diese Abfrage zu optimieren/neu zu schreiben? Ich denke, ich habe ein paar Dos und Dont's in diesem einen verletzt.SQL-Abfrageoptimierung mit Unterabfragen
SELECT
p.PropertyTagNumber,
Last_Inv_Hist.Plant,
Last_Inv_Hist.Location,
(
SELECT TOP (1) comment_txt
FROM Comment
WHERE (property_id = p.ID)
ORDER BY id DESC
) AS Remarks
FROM Property AS p
LEFT OUTER JOIN
(
SELECT i.ID, i.PropertyID, i.Location, pl.Plant
FROM InventoryHistory AS i LEFT OUTER JOIN
Plants AS pl ON i.PlantID = pl.ID
WHERE (i.ID = ( SELECT TOP (1) ID AS max_id
FROM InventoryHistory
WHERE (PropertyID = i.PropertyID)
ORDER BY InventoryDate DESC
)
)
) AS Last_Inv_Hist
ON p.ID = Last_Inv_Hist.PropertyID
Markieren Sie Ihre Frage mit der Datenbank, die Sie verwenden. –
Leistungsfragen sollten "EXPLAIN ANALYSE" und einige Informationen über Tabellengröße, Index, aktuelle Zeitleistung, Wunschzeit usw. enthalten. "Langsam" ist ein relativer Begriff, und wir brauchen einen echten Vergleichswert. –
das wahrscheinlich gehört auf [codereview.se] –