Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.21;
Скачать: CL | DM;

Вниз

FireBird - тормоз....   Найти похожие ветки 

 
serko ©   (2007-01-02 13:39) [0]

Сетевая база! База установлена на серваке! На каждом компе сети из 10 компов стоит клиентская прога которая записывает данный в базу. Так вот процесс Открытия... Записи...Закрытия происходит очень долго....
Клентские компы - Pentium 233. Не ахти но все-таки. Сервак нормальный Athlon 2000!
Почему так далго?


 
Sergey Masloff   (2007-01-02 14:05) [1]

Руки у разработчиков потому что...
С 10 пользователями P233 с 64 Мб оперативки сервером быть может и ничего тормозить не будет.


 
sniknik ©   (2007-01-02 14:13) [2]

> Почему так далго?
1% за то что глюк/недоработка в FireBird.
99% за кривые руки использующего(того кто делал эти "Открытия... Записи...Закрытия"...).

т.е. можеш смело предъявлять претензии разработчику "клиентской проги", хотя, желательно сменить формулировку с "очень долго" на чтонибудь поконкретнее типа "время сохранения одной записи, размера ...,  в среднем равно ... что считаю неприемлимым для данной программы".


 
serko ©   (2007-01-02 15:49) [3]


MainForms.IBDatabase1.DatabaseName:="Server:c:\Base.fdb";
MainForms.IBDatabase1.Open;
Try
   If not MainForms.IBDataSet1.Active then
           MainForms.IBDataSet1.Open;
   MainForms.IBDataSet1.InsertRecord([nil,
                                          datetimeTostr(now),
                                          Fam,
                                          Inttostr(Gr),
                                          Zur_ot,
                                          Oc,
                                          "",
                                          Pc]);
    MainForms.IBTransaction1.Commit;
Except
    MainForms.IBTransaction1.Rollback;
    Raise;
End;
MainForms.IBDataSet1.Close;
MainForms.IBDatabase1.Close;

Вот такой код на клиентской программе! На серваке висит только база! Вот когда начинает выполняться этот код программа подвисает, и через некоторое время все становится ОК! Данные записываются нормально... Но где то около 1 минуты


 
Ученик чародея ©   (2007-01-02 15:56) [4]


> serko ©   (02.01.07 15:49) [3]


А что из них первичный ключ, и есть ли он там?


 
Ученик чародея ©   (2007-01-02 15:58) [5]


> serko ©   (02.01.07 15:49) [3]


Сразу бы посоветовал разработчику изучит 4 команды SQL - Select,Insert, Update,Delete и пользоватся ими.


 
serko ©   (2007-01-02 16:55) [6]

Первичный ключ - это первое поле! оно у меня ID - которое генерируется автоматически +1....


 
Ученик чародея ©   (2007-01-02 17:31) [7]

Я бы все таки через Insert и ExecSQL сделал.

FB какой версии?
Как открывается транзакция Read Commited или Snapshot?
IBExpress обновлены?(сам пользуюсь SQLDirect)

Вопрос, ты что на каждую вставку, изменение заново подключаешься к базе?


 
atruhin ©   (2007-01-02 17:50) [8]

> Вопрос, ты что на каждую вставку, изменение заново подключаешься
> к базе?

Судя по коду да! И помимо глобальной глупости, тормоза как видимо,
возникают из-за кривой настройки DNS.


 
Desdechado ©   (2007-01-02 19:20) [9]

1. На кой хрен для каждой записи подключаться, а потом отключаться от БД? Это мазохизм какой-то...
2. MainForms.IBDataSet1.Open;  MainForms.IBDataSet1.InsertRecord - это еще больший ламеризм. Зачем открывать набор данных, если нужнотолько на сервер загнать запись в таблицу?


 
serko ©   (2007-01-02 22:54) [10]


> 1. На кой хрен для каждой записи подключаться, а потом отключаться
> от БД?

Потому как без отключения от БД данные на других компах не отображаются!


> 2. MainForms.IBDataSet1.Open;  MainForms.IBDataSet1.InsertRecord
> - это еще больший ламеризм. Зачем открывать набор данных,
>  если нужнотолько на сервер загнать запись в таблицу?

Хорошо что подметили! Сначала в голове было одно, потом другое вот и забыл убрать...


 
Ученик чародея ©   (2007-01-03 00:10) [11]


> serko ©   (02.01.07 22:54) [10]
>
>
> > 1. На кой хрен для каждой записи подключаться, а потом
> отключаться
> > от БД?
>
> Потому как без отключения от БД данные на других компах
> не отображаются!


Я ПлакалЪ! Только ЙАД!


 
vlad-mal ©   (2007-01-03 20:54) [12]

Есть классная книжка "Мир InterBase".
Там довольно понятно описаны основные приемы работы с сервером и методы построение клиентских приложений.


 
vitv ©   (2007-01-04 09:30) [13]

Почитай про транзакции.
> ь классная книжка "Мир InterBase".Там довольно понятно описаны
> основные приемы работы с сервером и методы построение клиентских
> приложений.

Книга Супер.


 
Carmen ©   (2007-01-05 20:21) [14]

правильно работать с транзакциями и изменения будут видеть все.
и правильней будет использовать компонент Query з командой SQL Insert а потом ExecQuery.


 
Дмитрий Белькевич ©   (2007-01-06 04:22) [15]

А еще правильней - батон "обновить" никто не отменял...



Страницы: 1 вся ветка

Текущий архив: 2007.01.21;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.06 c
2-1167226205
Mickey74
2006-12-27 16:30
2007.01.21
Какие программы используют мою DLL в данный момент времени?


15-1167164837
kroner
2006-12-26 23:27
2007.01.21
Регулярные выражения в delphi


2-1168065288
Igor_Z
2007-01-06 09:34
2007.01.21
Обрезка файла


3-1162116820
Гоблин
2006-10-29 13:13
2007.01.21
Двоичные данные в базу.


2-1167247204
jonson35
2006-12-27 22:20
2007.01.21
MySQL