![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос в ускорении расчёта. [D6, XP]
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]
> Вопрос в архитектуре
архитектуре чего?