To znane pytanie, ale najlepszym rozwiązaniem, jakie znalazłem, jest coś takiego:
SELECT TOP N *
FROM MyTable
ORDER BY Id DESC
Mam tabelę z wieloma rzędami. Nie można użyć tego zapytania, ponieważ zajmuje dużo czasu. Jak więc mogę wybrać ostatnie N wierszy bez użycia ORDER BY?
EDYTOWAĆ
Przepraszamy, powtórzone pytanie tego
id
jest indeksowany, po prostu przeskanuje ten indeks w odwrotnej kolejności i zatrzyma się po pierwszych 5 wierszach. Jeśli nie jest indeksowany, będzie musiał wykonać TOP N
sortowanie. Nie będzie to gorsze niż jakikolwiek inny sposób. Nie sortuje całego stołu (chociaż musiałby przeskanować cały stół)