Ich lerne etwas über Ausführungspläne und probiere verschiedene Abfragen aus und vergleiche deren Leistung. Dabei bin ich auf Folgendes gestoßen:
SELECT StatisticID
FROM (
SELECT StatisticID, ROW_NUMBER() OVER (ORDER BY StatisticID) AS rn
FROM FTCatalog.Statistic
) AS T
WHERE T.rn <= 1000
ORDER BY rn
SELECT TOP 1000 StatisticID
FROM FTCatalog.Statistic
ORDER BY StatisticID
Beide geben dieselbe Ergebnismenge zurück - die erste wird jedoch schneller ausgeführt und ist weniger ressourcenhungrig (zumindest SSMS sagt mir das). Hier sind Ausführungspläne:
Vergleich mit dem SQL Query Plan Explorer: Kann mir jemand einen Einblick geben, was tatsächlich hinter den Kulissen passiert und warum die Ergebnisse unterschiedlich sind? Wenn Sie noch etwas brauchen, lassen Sie es mich einfach wissen.
Danke, Evaldas.