Учитывая следующий код, который заполняет объект DataTable данными из запроса:
var response = new DataTable();
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand sqlCommand = new SqlCommand(query, connection);
sqlCommand.CommandTimeout = 30;
SqlDataAdapter da = new SqlDataAdapter(sqlCommand);
da.Fill(response);
connection.Close();
da.Dispose();
}
Предположим, что любой запрос отправляется через этот код.
Если запрос возвращает десятки тысяч строк, содержащих несколько гигабайт данных, могут возникнуть проблемы с производительностью. Есть ли способ изменить команду «Заполнить», чтобы она заполнялась только, например, первые 1000 строк и перестает принимать данные после?
В настоящее время при возврате больших запросов занято большое пространство кучи (на снимке показан снимок до и после заполнения), и я ищу способ программно заполнить только определенную сумму.
![enter image description here](https://i.stack.imgur.com/hDThV.png)
Возможно ли это?