J'apprends les plans d'exécution et j'essaie différentes requêtes et je compare leurs performances et je suis tombé sur ceci:
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
Ils retournent tous les deux le même jeu de résultats - cependant le premier s'exécute plus rapidement et consomme moins de ressources (au moins SSMS me le dit) Voici les plans d'exécution:
Comparaison de SQL Query Plan Explorer: Quelqu'un pourrait-il me donner un aperçu de ce qui se passe réellement dans les coulisses et pourquoi les résultats diffèrent? S'il y a autre chose dont vous avez besoin - faites le moi savoir.
Merci, Evaldas.