Задежка при вызове метода Read интерфейса DbDataReader
От: Anwar Россия  
Дата: 10.09.07 10:36
Оценка:
Добрый день.
Имеется код

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()

В чем может быть проблема?
Re: Задежка при вызове метода Read интерфейса DbDataReader
От: Anwar Россия  
Дата: 10.09.07 10:51
Оценка:
Прошу прощения, используется C#, .NET 2.0, OracleConnection из System.Data.OracleClient
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.