Registriert seit: 2. Mär 2004
5.508 Beiträge
Delphi 5 Professional
|
Re: aktuellsten Record (anhand Datum/Uhrzeit) ermitteln
28. Jan 2008, 15:23
Ohne Index auf EventDate und EventTime ist der Server zu einem Full Table Scan gezwungen.
D.H. er muss auf jeden Fall die ganze Tabelle durchrattern und sich EventDate und EventTime sortiert merken.
Erst wenn er die ganze Liste aufgebaut hat, werden die Daten ausgegeben, wobei die Ausgabe nach dem 1. Datensatz beendet ist.
Die Liste enthält dabei nicht alle Daten die ausgegeben werden sollen, sondern nur die Reihenfolge der Datensätze.
Also: ORDER BY bedeutet nicht, das die ganzen Daten sortiert im Speicher sein müssen. (Stichwort: indirektes Sortieren)
Sollte auf EventDate und EventTime ein Index liegen, kann der Server diesem Index in der richtigen Richtung folgen und ist damit bei vielen Datensätzen deutlich schneller.
Der Performancegewinn stellt sich aber erst ab einer bestimmten Datensatzanzahl (50..1000) ein.
Andreas
|