Folgendes Problem :
Es gibt die Tabellen "Artikel" und "Artikel-Historie".
Bei jeder Preisänderung aktualisiert sich die Historie über einen Trigger selbst (VK,MwSt,Benutzer etc).
Forlgende Abfrage :
SELECT ARS.ArtikelNr, ARS.Bez, ARS.VKNetto, H.VKNetto, H.DT, H.VKNetto AS HistVKNetto
FROM Artikel ARS
LEFT JOIN Artikel-Historie AH ON AH.Hist_ID = (SELECT TOP 1 H_ID FROM Artikel-Historie WHERE VKPreis <> ARS.VKPreis AND Artikel_ID = ARS.Artikel_ID AND DT>GetDate()-30 ORDER BY DT DESC)
Die Abfrage gibt mir die nötigen Artikel-Informationen und auch die Info ob in den Letzten 30 Tagen der Artikelpreis sich verändert hat(Datum,alter VK).
Leider dauert die Abfrage im schnitt etwa 4 Sekunden.
Wie kann ich die Abfrage umformulieren das ich wieder unter eine Sekunde komme ?
Lasse ich den Join auf die Historie weg, so habe ich eine Abfragezeit von unter einer Sekunde.
Danke im Vorraus
Es gibt die Tabellen "Artikel" und "Artikel-Historie".
Bei jeder Preisänderung aktualisiert sich die Historie über einen Trigger selbst (VK,MwSt,Benutzer etc).
Forlgende Abfrage :
SELECT ARS.ArtikelNr, ARS.Bez, ARS.VKNetto, H.VKNetto, H.DT, H.VKNetto AS HistVKNetto
FROM Artikel ARS
LEFT JOIN Artikel-Historie AH ON AH.Hist_ID = (SELECT TOP 1 H_ID FROM Artikel-Historie WHERE VKPreis <> ARS.VKPreis AND Artikel_ID = ARS.Artikel_ID AND DT>GetDate()-30 ORDER BY DT DESC)
Die Abfrage gibt mir die nötigen Artikel-Informationen und auch die Info ob in den Letzten 30 Tagen der Artikelpreis sich verändert hat(Datum,alter VK).
Leider dauert die Abfrage im schnitt etwa 4 Sekunden.
Wie kann ich die Abfrage umformulieren das ich wieder unter eine Sekunde komme ?
Lasse ich den Join auf die Historie weg, so habe ich eine Abfragezeit von unter einer Sekunde.
Danke im Vorraus
Comment