Форум: "Базы";
Текущий архив: 2002.08.15;
Скачать: [xml.tar.bz2];
ВнизО фильтрах Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.011 c