Зависит от ваших индексов.
Иногда это может быть лучше
SELECT *
FROM tblUsersMessages
WHERE Id IN (SELECT Id
FROM (select Id,
ROW_NUMBER() over (order by Id desc) as RowId
from tblUsersMessages) dt
WHERE RowId between 10 and 25)
Если существует более узкий индекс, который можно использовать для быстрого поиска значений Id
в диапазоне. См. Мой ответ здесь для примера, который демонстрирует тип проблемы, которая может возникнуть.
Вам необходимо проверить планы выполнения и выходные данные SET STATISTICS IO ON
для вашего конкретного случая.