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

Вниз

О фильтрах   Найти похожие ветки 

 
kalliopiy ©   (2002-07-26 11:48) [0]

Здравствуйте!

Вопрос у меня, конечно, интересный, хотя может и не совсем понятный - не знает ли кто, что работает быстрее: фильтрование через запись условия в свойство Filter или через обработку события OnFilterRecords?


 
Weare ©   (2002-07-26 12:07) [1]

Я точно не зная, но одно могу сказать точно: если использовать свойство Filter, то не нужны никакие индексы, которые постоянно слетают!!!


 
VAleksey ©   (2002-07-26 12:22) [2]

Одинаково.


 
VAleksey ©   (2002-07-26 12:23) [3]

МММ. Хотя в событии ты можешь такого навернуть :) , что будет жутко тормозить !


 
Mike Kouzmine   (2002-07-26 12:32) [4]

Попробуй сам и расскажи нам


 
kalliopiy ©   (2002-07-26 12:38) [5]


> Mike Kouzmine


Хорошая идея! Но для чего бы я тогда спрашивал? Я ж только пишу программу и в БД записей - всего ничего, так что и тестировать не на чем... Хотя, может быть, когда-нибудь попробую...


 
Mike Kouzmine   (2002-07-26 12:41) [6]

А из Demo не пробывал. Да на любой таблице.


 
kalliopiy ©   (2002-07-26 12:50) [7]

А там их, что - много?

Тут нужно записей, эдак ...надцать тысяч - вот тогда бы дело пошло!

И к тому же, насколько я понял, работают данные методы абсолютно по разному: если через Filter, то сразу же отфильтровываются все записи и доступны только удовл. условию, а если через OnFilterRecords, то событие это будет обрабатываться не единожды, а каждый раз при перемещении на новую запись. Так что даже не вижу как и сравнить их по быстроте выполнения.

Короче, я сам понял, что вопрос, конечно, интересный, но из разряда самопротиворечивых! :)


 
Mike Kouzmine   (2002-07-26 12:53) [8]

Ну так сделай цикл. Извини, но халява начинает доставать.


 
Mike Kouzmine   (2002-07-26 12:54) [9]

Ладно сам проверю, а то и мне стало интересно, минут через 15 отвечу.


 
Johnmen ©   (2002-07-26 12:55) [10]

>...если через Filter, то сразу же отфильтровываются все записи и доступны только удовл. условию...

А кто пределяет доступность ? :)


 
Mike Kouzmine   (2002-07-26 13:09) [11]

Все верно, onFilterRecord работает чуть медленее
Filter (3335,3395,3375)
onFilterRecord (3485,3505,3445)
Все в тиках по три раза


 
kalliopiy ©   (2002-07-26 13:11) [12]


> Mike Kouzmine

Спасибо за неподдельный интерес!


> Johnmen ©


Что значит "кто определяет доступность"? Конечно, TDataSet, в общем случае. Или тебя снова глючит? Слова опять путаешь? Ай-яй-яй! :)


 
Johnmen ©   (2002-07-26 13:24) [13]

>kalliopiy © (26.07.02 13:11)

На этот раз нет :) Просто слишком иносказательно спросил.
В общем так. Данные методы по сути работают одинаково.
А разница, полученная Mike Kouzmine (если он все делал корректно), может объясняться лишними вызовами OnFilterRecords.


 
Mike Kouzmine   (2002-07-26 13:31) [14]

В таблице есть поле PARTNO, имеется одно значение "271701"
1 В дизайне пишу PARTNO="271701"
2 Afteropen пишу
I := GetTickCount;
Table1.Filtered := True;
I := GetTickCount - I;
Label1.Caption := IntToStr(I);
3 На onShow пишу
Table1.Open

1 onFilterRecords пишу
Accept := Table1PARTNO.Value = "271707"
остальное без изменений

Может правда что-то неправильно?


 
Mike Kouzmine   (2002-07-26 13:33) [15]

Естественно во втором случае Filter равен ""


 
Anatoly Podgoretsky ©   (2002-07-26 13:46) [16]

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

kalliopiy © (26.07.02 12:38)
В чем проблема, нагенерируй пару сотен тысяц записей и испытывай


 
Johnmen ©   (2002-07-26 13:54) [17]

>Anatoly Podgoretsky © (26.07.02 13:46)
>...абсолютно по разному...средствами движка...когда иначе нельзя,

Хотелось бы поподробнее...В частности, по поводу движка.



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

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

Наверх




Память: 0.5 MB
Время: 0.012 c
14-48250
blackman
2002-07-19 11:14
2002.08.15
Была сделана примитивная задачка.


7-48348
igor345
2002-05-30 15:34
2002.08.15
User LogOn - LogOff


3-47945
Sword
2002-07-25 18:57
2002.08.15
DBGrid


7-48321
VID
2002-05-30 08:47
2002.08.15
Отключение винта


4-48364
greenrul
2002-05-30 17:15
2002.08.15
Смена раскладки на следующую по счету