Sometimes even simple sql query (on SQL Server 2005) with the use of TOP(n) can have very bad performance. Here and here, there are some useful tips on how TOP(n) works. There isen’t a simple solution. Im my case, to avoid the problem I simple removed the TOP(n) clause, and filter the row (small number) on the rowset returned.
SELECT TOP (n)