Πέρα από αυτό που επεσήμανε η mns σχετικά με το τι ακριβώς θέλουμε να κάνουμε, το performance αλλάζει δραματικά ανάλογα αν υπάρχει index ή όχι. Αν υπάρχει clustered index, τα δεδομένα είναι ήδη ταξινομημένα και γι αυτόν το λόγο τόσο το ORDER BY, όσο και το MAX δημιουργούν τελικά το ίδιο execution plan όπως είπε ο Παναγιώτης και εκτελούνται πρακτικά στον ίδιο χρόνο (με το MAX να είναι 16 ms ταχύτερο). Όταν δεν υπάρχει index, τότε η λύση με το MAX απαιτεί να γίνουν δύο περάσματα (table scans) το πρώτο για να βρεθεί το MAX και το δεύτερο, εκ νέου, για να βρεθούν όλες οι εγγραφές που έχουν τιμή στο πεδίο αναζήτησης, ίδια με το MAX.
Για να το διαπιστώσεις, δοκίμασε ότνα βρεις ευκαιρία να ξανατρέξεις το script βάζοντας μετά το CREATE TABLE το
CREATE CLUSTERD INDEX CL_mytest ON mytest(id)
Τουτέστιν, δεν είναι το MAX χρονοβόρο, είναι η σωστή ή η λανθασμένη υλοποίηση των indexes που κάνει τη διαφορά...
Vir prudens non contra ventum mingit