Я подозреваю, что разница в том, что хотя выполнение сгенерированного запроса занимает всего 0 секунд, это потому, что он не показывает все результаты, если вы используете что-то вроде Enterprise Manager. Простая загрузка (и десериализация) всех данных для 100 000 результатов может занять значительное время, но ваш ручной запрос, вероятно, показывает только первые 20 обращений или что-то подобное.
Если вы запускаете тот же SQL-запрос в .NET и используете DataReader
для извлечения всех данных, сколько времени это займет?
Если вы запускаете сервер с включенным профилированием, сколько времени, по его словам, потребовалось для выполнения запроса из LINQ to SQL?