Guten Morgen alle,
Ich habe an einem mäßig komplexen SQL gearbeitet, um einige Daten aus einer Produktdatenbank eines Drittanbieters zu erhalten und sie in unseren eigenen internen Anwendungen anzuzeigen.
Ich habe eine Auswahl hinzugefügt, um den Top-Datensatz aus einer Tabelle in einer Unterabfrage zu erhalten (wenn dies sinnvoll ist).
Die Abfrage dauerte fast 3 Minuten, um eine endgültige Ergebnismenge von 100 Datensätzen mit zurückzugeben
SELECT TOP 1 ...
Ich habe online nach Verbesserungen für das gesucht, was ich erreichen wollte, und es wurde vorgeschlagen, meine Auswahl zu ändern, um eine Variable zu verwenden, wie unten
DECLARE @topCount INT
SET @topCount = 1
SELECT TOP (@topCount) ...
Dies dauerte die gleiche Abfrage von 3 Minuten bis 1 Sekunde, was großartig ist!
Aber kann jemand erklären, warum das so ist.
quelle
top 1
.