Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.05;
Скачать: CL | DM;

Вниз

Тормоза при фильтрации   Найти похожие ветки 

 
Set   (2004-02-07 17:36) [0]

Мастера, подскажите. В БД около 5-6 тыс. записей. Заметил, что при фильтрации несколько раз подряд данная процедура выполняется всё медленнее. Объясните почему (из-за того, что передаётся весь набор?)? И как от этого избавиться. Очень надо, а SQL использовать не могу (нельзя по заданию).


 
sniknik ©   (2004-02-07 17:53) [1]

http://delphimaster.net/view/3-1075908617/
особенно внимательно читать там где разница разьясняется между трёпом(общими фразами) и обсуждением.


 
Set   (2004-02-07 19:09) [2]

То есть предлагается использовать OnFilterRecord?
Но объясните, почему возникает эта проблемма?


 
sniknik ©   (2004-02-07 21:07) [3]

> То есть предлагается использовать OnFilterRecord?
нет, предлагаю описать проблему. что используется, какой фильтр, есть ли индекс...


 
Gorlum ©   (2004-02-08 00:11) [4]

Описываю.
БД Paradox, индексирована по полю, по которому производится фильтрация(числовое). Table, DataSourse, DBGrid. Это всё.
Записей 5453.
Фильтрую в первый раз, засекаю время - 10 секунд. Отменяю фильтрацию. Ввожу новое условие фильтра, засекаю время выполнения -15-18 сек.


 
Set   (2004-02-08 00:13) [5]

Во-во. точно такая же ситуация.


 
Gorlum ©   (2004-02-08 00:14) [6]

Я уже задавал этот вопрос месяца три назад. Правда ответа не получил. Пришлось через SQL.


 
sniknik ©   (2004-02-08 02:43) [7]

> Это всё.
а сам фильтр? а тип доступа? (ну да ладно с типом дeмаю это BDE, всегда начинающие почемуто считают что это единственное что все используют)

> засекаю время - 10 секунд.
откуда такие цыфры? особенно по числовому индексированному полю.
проверяю

var dt: TDateTime;
begin
dt:= Now;
Table1.DisableControls;
Table1.Filter:= "ID > 15000 AND ID < 20000";
Table1.Filtered:= true;
Table1.EnableControls;
Label1.Caption:= TimeToStr(Now - dt);
end;
поле с индексом в таблице около 200тыс записей, отобраных как видно 5тыс.
время первого применения индекса засечь не удалось 0с.
отменяю применяю его же по новой те же 0 с. и ?????

p.s. нет подробностей = прекращение (односторонее с моей стороны) обсуждения, уж слишком много приходится писать обьяснений плюс домыслы да еще думать как это понятнее донести. (заметте не на проблему время тратится а обьяснение как важны исходные данные)


 
Set   (2004-02-08 14:13) [8]

Сделал
Table1.DisableControls;
Действительно быстро. Спасибо.



Страницы: 1 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.011 c
1-12433
ximka
2004-02-16 20:00
2004.03.05
Запись на CD


1-12341
dr Tr0jan
2004-02-16 04:30
2004.03.05
Разукрашенная строка в TRichEdit.


1-12343
Sungod
2004-02-22 13:36
2004.03.05
ShellTreeView отбражение файлов определённого типа


3-12264
sdram
2004-02-09 10:35
2004.03.05
Помогите отсортировать числовые значения и строки в запросе


1-12313
bartram
2004-02-25 18:09
2004.03.05
Как сделать hook на нажатие колёсика мыши?