Когда я называю этот код:
using (var connection = new SqlConnection(connectionString))
{
var command = new SqlCommand("SELECT * FROM Table", connection);
connection.Open();
using (var reader = command.ExecuteReader())
{
while(reader.Read())
{
// Do something here
}
}
}
, что происходит внутри?Как это работает на сетевом уровне?Будет ли он совершать новую поездку в базу данных для каждого вызова Read
или есть внутреннее чтение пакетов?
Я спрашиваю, потому что я только что прочитал, что ODP.NET предоставляет свойство FetchSize
в обоихOracleCommand
и OracleDataReader
, которые я понимаю как определение того, сколько записей должно быть предварительно загружено за одну поездку в базу данных.Интересно, работает ли SQL Server аналогичным образом и существует ли какое-либо подобное поведение, которое можно где-то настроить.Я не нашел такой конфигурации в SqlCommand
, SqlDataReader
или CommandBehavior
.