Форум: "Базы";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
ВнизМедленно работает CDS Найти похожие ветки
← →
Juice © (2006-09-15 15:45) [0]В CDS загружаются данные из другого CDS и затем я оперирую этими данными в нем - передвигаюсь и редактирую то что надо изменить. Все это происходит в памяти и в базу попасть не должно. Проблема в том что при маленьких обьемах данных (100 записей например) очень большие задержки при вызове Post - около 0.5-1 сек . Например мне нужно пробежаться по ста записям и в поле где 1 поставить 0, и это занимает около 70 секунд! Что подскажите, что можно отключить, как повлиять, может кто-то сталкивался с таким?
← →
Desdechado © (2006-09-15 15:57) [1]> В CDS загружаются данные из другого CDS
Механизм?
← →
Shaman_ © (2006-09-15 16:15) [2]Нужна более детальная картина. Здесь проблема не в скорости CDS, а в чем то другом
← →
Juice © (2006-09-15 16:52) [3]
> Механизм?
Data := Data
← →
Shaman_ © (2006-09-15 17:24) [4]Какой результат выдаст этот код?
procedure SpeedCalc;
var
TestCDS: TClientDataSet;
i: Integer;
StartDateTime,FinallyDateTime: TDateTime;
begin
try
TestCDS := TClientDataSet.Create(nil);
TestCDS.FieldDefs.Add("Field1",ftInteger);
TestCDS.CreateDataSet;
StartDateTime := Date+Time;
for i := 0 to 100 do
begin
TestCDS.Insert;
TestCDS.FieldByname("Field1").AsInteger := i;
TestCDS.Post;
end;
TestCDS.First;
while not TestCDS.Eof do
begin
TestCDS.Edit;
TestCDS.FieldByName("Field1").AsInteger := 100;
TestCDS.Post;
TestCDS.Next;
end;
FinallyDateTime := Date+Time;
ShowMessage("Время старта: "+DateTimeToStr(StartDateTime)+#10+"Конечное время: "+DateTimeToStr(FinallyDateTime));
finally
FreeAndNil(TestCDS);
end;
end;
← →
Fay © (2006-09-16 04:52) [5]2 Shaman_ © (15.09.06 17:24) [4]
Нелепый код
← →
Shaman_ © (2006-09-16 12:30) [6]2 Shaman_ © (15.09.06 17:24) [4]
Такой же нелепый как изложеная автором проблема. У автора метод Post в маленьких наборах данных CDS выполняется 0,5-1 секунд
Этот код собственно и есть маленький набор данных с методом Post на insert и edit
← →
Juice © (2006-09-18 11:08) [7]
> Shaman_ © (16.09.06 12:30) [6]
> 2 Shaman_ © (15.09.06 17:24) [4]
>
> Такой же нелепый как изложеная автором проблема.
Спасибо за помощь, но насчет нелопости ты тут погарячился. Отключение ChangeLog решило проблему. А так, навскидкуTestCDS := TClientDataSet.Create(nil);
надо бы перед try.
← →
Shaman_ © (2006-09-18 12:43) [8]>ChangeLog решило проблему
Вообще кэширование изменений не должно так сильно влиять на производительность. Может такое проявляется если записи очень "Тяжелые"...? Допустим большие записи в Blob полях
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.048 c