Вниз
Скачать: CL | DM;

Медленно работает 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.039 c
1-1160372158
Dust
2006-10-09 09:35
2006.11.19
Нужен конмпонент, подскажите если есть такой


2-1162397653
Godness
2006-11-01 19:14
2006.11.19
Html парсер для Delphi5


1-1159882134
mazur_r
2006-10-03 17:28
2006.11.19
Работа с полями в Word.


1-1160228759
DeBa
2006-10-07 17:45
2006.11.19
Узнать парент


2-1162376939
Vladimir1984
2006-11-01 13:28
2006.11.19
как открыть файл xls, и по координатам построить поверхность?




   Наверх