Dacă în view era "TOP 3 ... ORDER BY Something" şi faci un "SELECT * FROM View" fără să specifici ORDER BY-ul, atunci ultimul pas din execution plan este ordonarea, pentru a returna doar numărul de rânduri specificat. Cele 3 rânduri selectate (pe baza ordinii specificate), vor fi apare ordonate în rezultat (deoarece ordonarea este ultimul pas din execution plan şi ulterior nu mai sunt reordonate altfel).
Dacă schimbăm "TOP 3" cu "TOP 100 PERCENT", SQL Server 2000 se comporta la fel (în sensul că ordona rândurile, iar apoi le returna pe toate), dar SQL Server 2005 ştie că "TOP 100 PERCENT" înseamnă să returneze toate rândurile şi nu se mai chinuie să le ordoneze degeaba (având în vedere că oricum ar fi fost returnate toate).
Această optimizare a fost făcută în SQL Server 2005 pentru cazul când view-ul respectiv nu era folosit direct, ci era folosit într-un JOIN sau un alt query care implică alte tabele (de exemplu, "SELECT * FROM SomeTable WHERE id IN (SELECT id FROM OrderedView"). În acest caz, SQL Server 2000 făcea o sortare degeaba, iar SQL Server 2005 nu mai face această sortare.
Răzvan