powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / FireBird: INSERT очень медленно.
10 сообщений из 10, страница 1 из 1
FireBird: INSERT очень медленно.
    #37324782
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую СУБД FireBird 2.5
Провайдер брал отсюда: firebirdsql.org
INSERT:
На Делфи написанная софтинка работает очень быстро (FIBPlus), а вот на C# .NET 3.5 медленно. Разница в раз 10-20 !!!

например:

Таблица
Код: plaintext
1.
2.
3.
4.
5.
6.
create table provodki (
    id           integer not null,
    text         varchar( 1024 ),
    numberint    integer,
    numberfloat  float
);

Пример кода:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
string selectCommand = "INSERT INTO PROVODKI (TEXT, NUMBERINT, NUMBERFLOAT)values(@TEXT, @NUMBERINT, @NUMBERFLOAT)";
                FbConnection con = new FbConnection(connectionString);
                FbCommand cmd = null;
                FbParameter paramTEXT = null;
                FbParameter paramNUMBERIN = null;
                FbParameter paramNUMBERFLOAT = null;
                con.Open();
                using (FbTransaction trans = con.BeginTransaction())
                {
                    for (int i = 1; i <= 1000; i++)
                    {
                        paramTEXT = new FbParameter("@TEXT", FbDbType.VarChar);
                        paramNUMBERIN = new FbParameter("@NUMBERINT", FbDbType.Integer);
                        paramNUMBERFLOAT = new FbParameter("@NUMBERFLOAT", FbDbType.Float);
                        cmd = new FbCommand(selectCommand, con);
                        cmd.Transaction = trans;
                        cmd.Parameters.Add(paramTEXT).Value = " АБРАКАДАБРА ";
                        cmd.Parameters.Add(paramNUMBERIN).Value = i;
                        cmd.Parameters.Add(paramNUMBERFLOAT).Value = i / 3;
                        cmd.ExecuteNonQuery();
                    }
                   trans.Commit();
                }
                con.Close();

Может что-то не то в коде "Транзакции + цикл FOR" ???
...
Рейтинг: 0 / 0
FireBird: INSERT очень медленно.
    #37325146
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала уберите BeginTransaction.
...
Рейтинг: 0 / 0
FireBird: INSERT очень медленно.
    #37325177
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Может что-то не то в коде "Транзакции + цикл FOR" ???
Ну... На дельфях это, я так подозреваю, выглядит примерно так (это хоть и стройка и IBX'ы, но не суть важно):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
DataBases->IBSQL1->SQL->Text="INSERT INTO PROVODKI (TEXT, NUMBERINT, NUMBERFLOAT)values(:TEXT, :NUMBERINT, :NUMBERFLOAT)";
DataBases->IBTransaction->StartTransaction();
DataBases->IBSQL1->Prepare();
for(int i =  1 ; i <=  1000 ; i++)
{
	DataBases->IBSQL1->ParamByName("TEXT")->AsString=" АБРАКАДАБРА ";
	DataBases->IBSQL1->ParamByName("NUMBERINT")->AsInteger=i;
	DataBases->IBSQL1->ParamByName("NUMBERFLOAT")->AsFloat=i/ 3 ;
	DataBases->IBSQL1->ExecQuery();
}
DataBases->IBTransaction->Commit();
?
Попробуйте вынести за цикл создание FbCommand и добавление в нее параметров...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
FireBird: INSERT очень медленно.
    #37325927
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУДля начала уберите BeginTransaction.

А поподробнее можно ??? )))

Ex_SoftПопробуйте вынести за цикл создание FbCommand и добавление в нее параметров...

Пробовал ещё медленнее работает (((
С каждой записью скорость падает.
...
Рейтинг: 0 / 0
FireBird: INSERT очень медленно.
    #37325936
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П.С. Может просто Делфи + компоненты "заточены" для работы с IB/FB/... ???
...
Рейтинг: 0 / 0
FireBird: INSERT очень медленно.
    #37326944
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, ещё один нюанс.
Запись данных в БД под Убунту (МОНО):
1) Тормозит
2) Иногда зависает прога.
Кому интересно: видео
Тормоза нереальные.
Да, ПостГри работает в Убунту (МОНО) во много раз быстрее.

П.С. Программный код "вставки данных в БД" давал выше.
...
Рейтинг: 0 / 0
FireBird: INSERT очень медленно.
    #37327207
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
potkin,

Ты NET программу запускаешь под МОНО, или изначально писал МОНО проект?
...
Рейтинг: 0 / 0
FireBird: INSERT очень медленно.
    #37327368
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarkanТы NET программу запускаешь под МОНО, или изначально писал МОНО проект?
1) Написал на студии 2008 .NET3.5 под ВинХР.
2) Открыл Этот же проект в МоноДевелоп в Убунту, откомпилировал.
3) Запустил откомпилированное приложение.
...
Рейтинг: 0 / 0
FireBird: INSERT очень медленно.
    #37328103
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
potkin,

В проекте Winforms и конкретно DataGridView были?
Как оно завелось? С "полоборота" или с помощью "зубила и какой-то матери"?
...
Рейтинг: 0 / 0
FireBird: INSERT очень медленно.
    #37328405
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BarkanВ проекте Winforms и конкретно DataGridView были?
Как оно завелось? С "полоборота" или с помощью "зубила и какой-то матери"?

1) Кинул на форму DataGridView, Баттоны и содал обработчики событий (клики по Баттонам).
2) Завелось с "полоборота", даже легче ))) Единственное, прописал путь к библиотеке "FirebirdSql.Data.FirebirdClient.dll" в МоноДевелоп.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / FireBird: INSERT очень медленно.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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