Текущий архив: 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