Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.19;
Скачать: 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 вся ветка

Текущий архив: 2006.11.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.035 c
2-1162462779
pasha_golub
2006-11-02 13:19
2006.11.19
Как поймать сообщение посланное для Application.Handle?


15-1162206003
maxmax111
2006-10-30 14:00
2006.11.19
поскажите программу, которая..


2-1162219520
term1t
2006-10-30 17:45
2006.11.19
operator/operand type mismach


2-1162667438
Kley
2006-11-04 22:10
2006.11.19
Поиск с отбором Query


15-1161927735
nikolay_sch
2006-10-27 09:42
2006.11.19
Сколько может стоить написать программу???