Форум: "Базы";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];
ВнизКак сделать прогу с IBX пошустрее? Найти похожие ветки
← →
Fareader (2002-01-03 16:11) [0]ПРивет всем. Попробовал перевести прогу из под BDE-шных компонентов на IBX - думал будет быстрее бегать, но скорость упала. В чем прикол?
← →
evgeg (2002-01-03 22:26) [1]А конкретнее?
← →
Fareader (2002-01-04 10:57) [2]Конкретнее: операции изменения записей и обновление IBQuery проходят гораздо медленее, чем с TQuery.
← →
Alexandr (2002-01-04 11:38) [3]как это?
здесь бы привел как там и как там.
Чудес не бывает.
← →
Fareader (2002-01-04 11:57) [4]Это с IBX
if nak_query.state=dsedit then nak_query.post;
if not write_trans.intransaction then write_trans.starttransaction;
Temp_query.close;
Temp_Query.sql.clear;
Temp_Query.sql.add("update nak set state_nak= :state_nak,");
Temp_Query.sql.add("vozvrat= :vozvrat");
Temp_Query.sql.add("where num_nak= :num_nak");
Temp_Query.parambyname("state_nak").asinteger:=3;
Temp_Query.parambyname("num_nak").asinteger:=yar_query.fieldbyname("num_nak").asinteger;
Temp_Query.parambyname("vozvrat").asinteger:=strtoint(label13.caption);
Temp_Query.execsql;
try
if nak_query.updatespending then
if not write_trans.intransaction then write_trans.starttransaction;
if nak_query.updatespending then begin
nak_query.ApplyUpdates;
sum_nak_query.CancelUpdates;
end;
if write_trans.intransaction then write_trans.commit;
ref:=true;
except
if write_trans.intransaction then write_trans.rollback;
nak_query.cancelupdates;
ref:=false;
messagedlg("
← →
Fareader (2002-01-04 17:33) [5]Ну как есть идеи?
← →
Alexandr (2002-01-08 08:59) [6]1)yar_query в IBX ты переоткрываешь, да еще и FetchAll, а в BDE нет.
2) в IBX ты создаешь дапрос на изменение, и запускаешь его каждый раз вручную, в результате чего в IBX в yar_query у тебя данные сами не меняются, поэтому тебе его приходится переоткрывать
а в BDE ты используешь cached Updates, поэтому у тебя изменения сразу в yar_query появляются и переотрытие делать ненадо.
в общих чертах так.
да, и еще в IBX заведи две транзакции- читающую и пишущую
← →
Fareader (2002-01-08 10:24) [7]Ладно все это чудесно, но почему один и тот же запрос на выборку в IBX исполняется намного дольше, чем в BDE?
select nak.num_nak, nak.kod_pl, nak.kod_gr, nak.num_yar, nak.date_smena, nak.date_in, nak.date_out, nak.vozvrat, nak.state_nak, nak.all_sht, nak.cls_smen, nak.cls_month, nak.num_nak_u,
yar.graf, yar.ezd, yar.drive_y, yar.id, yar.kod_cx,
yar.date_print as yar_print
from (nak left join yar on nak.num_yar=yar.id)
where
nak.state_nak between :b_state and :e_state and nak.state_nak<>0
or (nak.B_Smena_F= :b_period and nak.E_Smena_F= :e_period
and nak.state_nak between :b_fakt and :e_fakt )
order by nak.num_yar
Да, транзакции итак две - пишущая и читающая.
← →
Alexandr (2002-01-08 10:39) [8]такого не может быть.
если только дело не в FetchAll
проверь в IBX и в BDE должно быть одинаково.
или уж и там и там сделай лишний раз.
Лишний раз тормозить уже совсем не будет, а сделан FetchAll будет точно.
пропиши после открытия
DataSet.Open;
DataSet.FetchAll;
← →
Павел2 (2002-01-08 11:36) [9]а еще можешь взять FIBPlus версии 4.4.12 или старше и сделать FetchAll в них и в IBX - сравнишь время и обьем отожранной памяти - еще ~20-30% сэкономишь
← →
Alexandr (2002-01-08 12:01) [10]угу
или 4.5.1
← →
Romkin (2002-01-08 12:18) [11]А FibPlus работает с MIDAS? или по-прежнему нет?
← →
Alexandr (2002-01-08 12:22) [12]4.5.1 уже как-то работает.
см. на fibplus.com.ua
у них там даже примеры есть...
← →
Fareader (2002-01-08 13:54) [13]Сэкономлю что, память или быстрее будет?
Я реханусь все с IBX на FIBC переводить.
← →
Alexandr (2002-01-08 14:01) [14]и то и другое.
Да ладно , если рехнешся, то не переводи.
ну и как быстродействие?
разобрался?
← →
Fareader (2002-01-08 14:15) [15]Да, через yar_query запустил изменения - пошло быстрее. Только чего фильтр через OnFilterRecord иногда протормаживает, он чего заново запрос читает и отбирает то чего в фильтре записано?
← →
Alexandr (2002-01-09 07:00) [16]х.з. этот IBX
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c