Когда я вызываю этот код:
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
.