Ваш запрос работает не так, как вы ожидаете, потому что Sql Server хранит статистику о вашем индексе и в данном конкретном случае знает, что есть много повторяющихся строк с идентификатором 3835, следовательно, он показывает, что было бы лучше сделать полное сканирование индекса (или таблицы). Когда вы проверяете идентификатор, который разрешается только в одну строку, он использует индекс, как и ожидалось, то есть выполняет поиск по индексу (план выполнения должен проверить это предположение).
Возможные решения? Сделайте индекс составным, если у вас есть что-то, с чем его можно составить, например, составьте дату, когда сообщение было отправлено (если я правильно понимаю ваш случай), а затем выберите первую запись из списка с указанным номером, упорядоченным по дате. Хотя я не уверен, будет ли это лучше (например, составной индекс занимает больше места) - только предположение.
РЕДАКТИРОВАТЬ: Я только что опробовал предложение сделать составной индекс, добавив столбец даты. Если вы сделаете это и укажете order by date
в своем запросе, поиск по индексу будет выполнен, как ожидается.