powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / UPDATE in ADO .NET vs. IBExpert
3 сообщений из 3, страница 1 из 1
UPDATE in ADO .NET vs. IBExpert
    #38635411
_andrews_.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Firebird .NET Provider:

В таблице 260 000 записей:

NR INTEGER (PK)
VALUE _I INTEGER
VALUE _D DOUBLE
VALUE_S VARCHAR

Запрос:
Код: sql
1.
UPDATE SIMPLE_LONG SET VALUE_I = 111, VALUE_D = 111, VALUE_S = '111'



в IBExpert выполняется секунд 7-9

аналогичные действия через Provider производятся около минуты или дольше:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
        public static void UpdateSimpleLong(int aValue)
        {
            var qUpdateSingle = "UPDATE SIMPLE_LONG SET " +
                                "VALUE_I = @P_VALUE_I, VALUE_D = @P_VALUE_D, VALUE_S = @P_VALUE_S";
            var parameters = new[]
                {
                    new FbParameter("@P_VALUE_I", aValue),
                    new FbParameter("@P_VALUE_D", (double) aValue),
                    new FbParameter("@P_VALUE_S", aValue.ToString())
                };

            var timerUpdate = new Stopwatch();
            timerUpdate.Start();
            var records = ExecuteNonQuery(qUpdateSingle, connectionString, parameters);
            timerUpdate.Stop();

            Console.WriteLine("Changed records: " + records + " = " + timerUpdate.ElapsedMilliseconds/1000 + " sec");            
        }

        private static int ExecuteNonQuery(string aSQL, string aConnectionString, FbParameter[] aParameters)
        {
            using (var connection_ = new FbConnection(aConnectionString))
            {                
                var cmd = new FbCommand(aSQL, connection_);
                cmd.Parameters.AddRange(aParameters);
                connection_.Open();
                return cmd.ExecuteNonQuery();
            }
        }



Что делается не так?

Результат выполнения прикреплен.
...
Рейтинг: 0 / 0
UPDATE in ADO .NET vs. IBExpert
    #38635440
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы считаете вместе со временем установления соединения???? ConnectionString какой?
Что это?
new FbCommand(aSQL, connection_)
connection_.Open();
Масло масляное
http://www.firebirdsql.org/en/net-examples-of-use/
Это просто тест... ? я не заметил where
...
Рейтинг: 0 / 0
UPDATE in ADO .NET vs. IBExpert
    #38635462
_andrews_.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buserВы считаете вместе со временем установления соединения????
Да. В данном конкретном примере это занимает десятые доли секунды, основное время выполняется строка
Код: c#
1.
return cmd.ExecuteNonQuery();



buserConnectionString какой?

Код: sql
1.
initial catalog=D:\TEST.FDB;user id=SYSDBA;password=masterkey;port number=3050;server type=Default;dialect=3;pooling=True



buser Что это?
new FbCommand(aSQL, connection_)
connection_.Open();
Масло масляное

Это создание команды и открытие подключения. Почему масляное?

buserЭто просто тест... ? я не заметил where
Да. это просто Тест и сравнение правильно ли все работает. Скрипт выполняется умышленно без никаких WHERE, т.к. на больших данных и проблемы более заметны.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / UPDATE in ADO .NET vs. IBExpert
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]