Добрый день.
Имеется код
using(OracleConnection connection = new OracleConnection())
{
connection.ConnectionString = СТРОКА_СОЕДИНЕНИЯ;
connection.Open();
using(OracleCommand command = connection.CreateCommand())
{
command.CommandType = CommandType.Text;
command.CommandText = ТЕКСТ_ЗАПРОСА;
command.Parameters.Add("card_number", OracleType.VarChar);
command.Parameters["card_number"].Value = НОМЕР_КАРТЫ;
using(OracleDataReader reader = command.ExecuteReader(CommandBehavior.SingleResult))
{
if(reader.Read())
{
Console.WriteLine(reader[ПОЛЕ].ToString());
}
}
}
}
Время выполнения: доли секунды
Тот же, по моему мнению, код только с использованием интерфейсов
using(DbConnection connection = new OracleConnection())
{
connection.ConnectionString = СТРОКА_СОЕДИНЕНИЯ;
connection.Open();
using (DbCommand command = connection.CreateCommand())
{
command.CommandType = CommandType.Text;
command.CommandText = ТЕКСТ_ЗАПРОСА;
DbParameter p = command.CreateParameter();
p.ParameterName = "card_number";
p.DbType = DbType.String;
p.Direction = ParameterDirection.Input;
p.Value = НОМЕР_КАРТЫ;
command.Parameters.Add(p);
using (DbDataReader reader = command.ExecuteReader(CommandBehavior.SingleResult))
{
if (reader.Read())
{
Console.WriteLine(reader[ПОЛЕ].ToString());
}
}
}
}
Время выполнения: 10 минут
Строка соединения, текст запроса и т.п. те же что и в первом запросе и роли не играют.
Посмотрел в отладчике, задержка во втором листинге происходит при вызове метода reader.Read()
В чем может быть проблема?
Прошу прощения, используется C#, .NET 2.0, OracleConnection из System.Data.OracleClient