![]() |
Re: ORDER in Unterselect sehr langsam
@webcss: Das würde nur den größten AuftragID leifern und nicht den AuftragID der in dem datensatz mit der größten BUCHUNG steht ....
ABER : Die letzte Stored Procedure läuft nun sehr gut Habs nun "auf gut Glück" ins Programm selbst eingebaut und brauch nun statt den 3 sekunden keine 1.5 sekunden mehr sondern mit der neuen nur mehr 60 ms perfekt danke an alle |
Re: ORDER in Unterselect sehr langsam
Hallo,
das ist doch schön ;) *Rechnung schreib* Heiko |
Re: ORDER in Unterselect sehr langsam
Hallo Hans,
gratuliere zur Lösung. Es würde mich aber doch interessieren, wie schnell mein SQL ist. Postest Du dazu mal noch das Ergebnis? Gruß, Lutz |
Re: ORDER in Unterselect sehr langsam
Ja gerne, also die "Sieger" Lösung bracuht für die Abfrage 60ms
Deine braucht 2.171 sekunden, allerdings liefert es auch falsche Auftragsdaten als ergebnis .... |
Re: ORDER in Unterselect sehr langsam
Zitat:
|
Re: ORDER in Unterselect sehr langsam
Ich bin davon ausgegangen, dass Buchung unique ist, das war wohl falsch.
Den falschen SQL will ich aber nicht auf mir sitzen lassen. Wenn ich nicht wieder von den falschen Voraussetzungen ausgehe, sollte der das richtige Ergebnis liefern:
SQL-Code:
Eigentlich kann ich mir nicht vorstellen, dass dieser SQL so grottenschlecht ist. Mit den passenden Indizes sollte der wenigstens in die Nähe der Siegerlöscung kommen.
SELECT P.ID, TEMP.BUCHUNG, TB.AUFTRAGID FROM PERSONAL P
JOIN (SELECT PERSONALID, MAX(BUCHUNG) BUCHUNG FROM TERMINAL_BUCHUNGEN GROUP BY PERSONALID) TEMP on TEMP.PERSONALID=P.ID JOIN TERMINAL_BUCHUNGEN TB ON TEMP.BUCHUNG = TB.BUCHUNG and TEMP.PERSONALID = TB.PERSONALID Lutz |
Re: ORDER in Unterselect sehr langsam
Zitat:
Die Ausführungsgeschwindigkeit ist gleich. Ich habe auch geprüft, ob evtl. unterschiedliche Daten zurückgegeben werden: Fehlanzeige, die Rückgabewerte miener Abfrage und die der SP sind identisch. |
Re: ORDER in Unterselect sehr langsam
ok, die von delphianer, läuft nun auch mit 200ms (wobei die 200ms und 60ms wahrscheinlich ca gleich sind .... )
Die Daten sind auch richtig, es werden mit dem INNER JOIN halt die NULL ausgeblendet. Die Daten von webcss, sind aber definitiv falsch, da hier ja nur der MAX(AUFTRAGID) gelifert wird, und das ist ja nicht gewünscht Übrigens ein sehr interessanter Ansatz das bei delphianer - Danke vielmals dafür, so hatteich das nich nei irgendwo verwendet ... |
Re: ORDER in Unterselect sehr langsam
Zitat:
Die Aufgabenstellung: Finde die PersonalID und AuftragID zur jeweils letzten Buchung. Versuchsaufbau: Eine VIEW mit meiner Lösung, eine SP ala hoika. Dann folgende Abfrage:
SQL-Code:
Sieh Dir das Ergebnis an (NULL) und sag mir was daran falsch ist...
select spb.PersonalID, vwb.PersonalID, spb.Buchung, vwb.Buchung, spb.AuftragID, vwb.AuftragID from Sp_Buchung spb
inner join vw_Buchung vwb on vwb.AuftragID=spb.AuftragID where spb.AuftragID is not null and (vwb.AuftragID<>spb.AuftragID or vwb.Buchung <> spb.Buchung or vwb.PersonalID<>spb.PersonalID) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz