Чтение результатов «по мере их поступления» - это то, что SqlDataReader уже делает.
Помогает ли это, зависит от запроса.Запросы с агрегатными функциями GROUP BY + или предложениями ORDER BY 1 , как правило, должны материализовать весь набор результатов в памяти сервера, прежде чем они смогут начать возвращать результаты.Другие языковые конструкции также могут требовать этого.Запросы без этих языковых функций могут быть в состоянии начать возвращать результаты быстрее, в зависимости от плана выполнения.
Но 50 секунд - слишком долгое время в мире SQL.Почти всегда есть способ переписать запрос или настроить индексы, чтобы работать намного быстрее.Конечно, мы не сможем помочь с этим, если не сможем увидеть запрос , структуру таблицы и индексацию, перечисленные как часть вопроса.
1 Если предложение ORDER BY соответствует первичному ключу или другим важным индексам относительно JOIN, так что запрошенный порядок соответствует порядку, используемому для рабочего набора запроса, и это может быть математически показано, вы могли бы по-прежнему бытьхорошо.