MAX vs Top 1 - which is better?
1) When there is a clustered index on the table and the column to be queried, both the MAX()
operator and the query SELECT TOP 1
will have almost identical performance.
2) When there is no clustered index on the table and the column to be queried, the MAX()
operator offers the better performance.
Reference: http://www.johnsansom.com/performance-comparison-of-select-top-1-verses-max/
They are different queries.
The first one returns many records (the biggest a_date
for each event_id
found within a_primary_key = 5
)
The second one returns one record (the smallest a_date
found within a_primary_key = 5
).
Performance is generally similar, if your table is indexed.
Worth considering though: Top
usually only makes sense if you're ordering your results (otherwise, top
of what?)
Ordering a result requires more processing.
Min doesn't always require ordering. (Just depends, but often you don't need order by or group by, etc.)
In your two examples, I'd expect speed / x-plan to be very similar. You can always turn to your stats to make sure, but I doubt the difference would be significant.