Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-8988
Pat
2001-12-08 14:45
2002.02.04
Глюк FAT32


7-9005
AlikRyazan
2001-10-25 18:12
2002.02.04
Модем


1-8866
tovSuhov
2002-01-15 10:58
2002.02.04
TIniFile в Windows2000...


1-8865
ctapik-net
2002-01-21 15:40
2002.02.04
Создание электронного письма через ShellExecute


1-8952
Alexsum
2002-01-18 15:34
2002.02.04
Версия файла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский