В следующем коде команда - это DbCommand, которая уже настроена:
using( var dataReader = command.ExecuteReader() /*The actual execution of the query takes relatively little time.*/ ) {
while( dataReader.Read() ) {
// These are what take all of the time. Replacing them all with reader.GetValues( myArray ) has no impact.
val0 = dataReader.GetValue( 0 );
val1 = dataReader.GetValue( 1 );
val2 = dataReader.GetValue( 2 );
}
}
Большая часть времени для запроса, с которым я работаю в настоящее время, тратится на вызовы GetValue. Собираетесь ли вы туда и обратно в базу данных для каждого вызова GetValue? Кажется, это так, и это кажется очень неэффективным. Как отмечает код, попытка сделать это одним выстрелом с использованием GetValues () не имеет значения. Есть ли способ получить всю строку за один выстрел? Еще лучше, есть ли способ получить весь результат за один выстрел?
Спасибо.