Vielen Dank für eure Hilfe! Mit so vielen antworten habe ich gar nicht gerechnet! Die Daten liegen in einer Datenbank, denn die Anlage schreibt direkt in Datenbanken. Die Aufteilung habe ich mir nicht ausgedacht, man kennt das ja von Aufgaben die zu erledigen sind, Interessant ist die Leitungs Belegung pro Sekunde, und da muss ich dann noch höchste Leitungs Belegungen mit der dazugehörigen Sekunde raussuchen für einen Bericht.
Gibt es einen Grund, warum du für einen betroffenen Datensatz eine 1 aufsummierst, statt die betroffenen Datensätze zu zählen?
Ja ich hatte einige Sachen ausprobiert und versucht auf die Performance zu achten. Wenn ich schon am Anfang Minuten warten muss ist das zu lang. Die Abfrage der 3 Mio Zahlen und Berechnung des Zeitstempels geht ganz schnell. Der Join ist dann das Problem.
Der nächste Schritt ist, die spätere Subquery zu erstellen - zunächst einmal ohne die äußere Query. Diese zählt alle Datensätze, für die ein bestimmter Zeitpunkt BETWEEN Beginn AND Ende liegt. An dieser Stelle findet keinerlei Berechnung statt, nur zwei Vergleiche, die das DBMS mit je einem Index auf den beiden Spalten sehr schnell erledigen können sollte. Stichproben liefern plausible (oder noch besser korrekte) Ergebnisse? Fein, dann die Subquery in die äußere Query einfügen und finale Tests starten. Laufzeit auch ok? Wenn nicht, dann kommt die Performanceoptimierung an die Reihe.
Das werde ich mir noch einmal anschauen, ohne SUM und dann zählen mit COUNT. Das war ja so ähnlich meine Idee, nur falsch umgesetzt. Wo muss ich dann Zählen? Dann im select oder? Also ohne Join?
Das Ergebnis werde ich hier natürlich dann auch zeigen.