Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос в ускорении расчёта. [D6, XP]


Страницы:   1 2 3

Drowsy ©   (2012-01-10 07:17:00) 

В базе данных до фига небольших по количеству, но "длинных" записей таблиц.
Расчётный алгоритм связан с активной навигацией по датасетам этих таблиц.
Вопрос в ускорении расчёта.
Например, если работать не с датасетами, а со связанными списками записей, ускорит ли это расчёт?


Jeer   (2012-01-10 14:13:00) [21]


> если работать не с датасетами, а со связанными списками
> записей,


Есть еще датасеты в памяти, файлы в памяти.. :)


Jeer   (2012-01-10 14:12:00) [22]


> Drowsy ©   (10.01.12 10:57) [8]
>
>
> > Jeer ©   (10.01.12 09:36) [3]
> > Вопрос в архитектуре
>
> архитектуре чего?


Архитектуре разрабатываемой Вами программной системы.

Архитектура - это комплекс принятых для реализации технических решений (технологий), [организационных мероприятий] по хранению, обработке и визуализации данных для максимально полного удовлетворения заданного функционала системы в оговоренной прикладной сфере. (С) Jeer


Jeer   (2012-01-10 14:03:00) [23]


> Во-во, я после той ветки на воду всегда дую.


Ну а я, поскольку давно забил на АДО и проверил данный функционал для всех используемых мной технологий доступа, ленюсь вписывать две строчки :)
Хотя, спорить не буду - *.Disable*, .*Enable.*, это универсальный подход.


Ega23   (2012-01-10 13:21:00) [24]


> Но все равно, отключить - хуже не будет. Неизвестно через
> чего ТС работает.


Во-во, я после той ветки на воду всегда дую. Хотя казалось бы...


RWolf   (2012-01-10 13:19:00) [25]


> Ega23 ©   (10.01.12 12:55) [21]

да, в TCustomADODataSet логика использует ControlsDisabled в условии обращения к COM-серверу; запрещать контролы нужно.


OW   (2012-01-10 13:17:00) [26]

Проверил на ODAC, (TOraDataSet) - нет разницы
значит, ADO (com-объекты) только этим грешит.
значит, на TDataSet зря грешил. Спутал с TAdoDataSet, наверное.
Но все равно, отключить - хуже не будет. Неизвестно через чего ТС работает.


Ega23   (2012-01-10 12:55:00) [27]


> RWolf ©   (10.01.12 11:06) [12]
>
> если к датасету не присоединено ни одного DataSource, смысла
> запрещать контролы не видно.


http://delphimaster.net/view/3-1235739432
Особенно [7].


sniknik   (2012-01-10 12:41:00) [28]

> FIBPlus 6.9.6.
> уверен что нужен... (для ADOточно), проверка через " внешний объект" гораздо тяжелее отсутствия оной.

FIBPlus это COM объект?


RWolf   (2012-01-10 11:34:00) [29]


> [18]

FIBPlus 6.9.6.


OW   (2012-01-10 11:33:00) [30]


> RWolf ©   (10.01.12 11:25) [17]

М-да?..
А компоненты какие?


RWolf   (2012-01-10 11:25:00) [31]


> OW ©   (10.01.12 11:16) [15]
> > RWolf ©   (10.01.12 11:06) [12]сходу тоже не нашелно тем
> не менее практические проверки (код из [6], например) упрямо
> говорят, что есть смысл

прогнал код на локальной базе Firebird 1.5, таблица из 68 тыс. записей, выборка одного поля.
результаты совпадают в пределах погрешности.


OW   (2012-01-10 11:21:00) [32]


> Drowsy ©


если мало записей, и они неизменны (очень мало изменяемые),
может, просто создавать массив(ы) и работать с ним(и)?

>> Расчётный алгоритм связан с активной навигацией по датасетам этих таблиц.
что за расчеты, кстати?
можно ли код?


OW   (2012-01-10 11:16:00) [33]


> RWolf ©   (10.01.12 11:06) [12]


сходу тоже не нашел
но тем не менее практические проверки (код из [6], например) упрямо говорят, что есть смысл


Drowsy   (2012-01-10 11:14:00) [34]


> OW ©   (10.01.12 11:01) [11]
>
>
> > > а есть ли в коде .DisableControls?
> >
> > Нет, все убраны.
>
> а надо поставить :)

ну да, поставлены. )


Drowsy   (2012-01-10 11:14:00) [35]


> луук-ап и калкулс полей в датасетах тоже нет.

в смысле - убраны. )


RWolf   (2012-01-10 11:06:00) [36]


> OW ©   (10.01.12 11:01) [11]

D7, db.pas:
procedure TDataSet.DataEvent(Event: TDataEvent; Info: Longint);
...
begin
 NotifyDataSources := not (ControlsDisabled or (State = dsBlockRead));
...
 if NotifyDataSources then
 begin
   for I := 0 to FDataSources.Count - 1 do
     TDataSource(FDataSources[I]).DataEvent(Event, Info);
   if FDesigner <> nil then FDesigner.DataEvent(Event, Info);
 end;
end;

если к датасету не присоединено ни одного DataSource, смысла запрещать контролы не видно.


OW   (2012-01-10 11:01:00) [37]


> > а есть ли в коде .DisableControls?
>
> Нет, все убраны.

а надо поставить :)


OW   (2012-01-10 11:00:00) [38]


> sniknik ©   (10.01.12 10:45) [7]

я и говорю,
там где то стоит попытка уведомления контрла о смене активной записи
похоже у TDataSet (или TDataLink - забыл)
даже если контрла нет. т.е. аля если не задисэйблено, то попытаться уведомить бла-бла.. В процессе бла-бла выясняется, что уведомить некого, но попытка состоялась и время отнято.


Drowsy   (2012-01-10 11:00:00) [39]


> а есть ли в коде .DisableControls?

Нет, все убраны.
луук-ап и калкулс полей в датасетах тоже нет.


Drowsy   (2012-01-10 10:57:00) [40]


> Jeer ©   (10.01.12 09:36) [3]
> Вопрос в архитектуре

архитектуре чего?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо