powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Что быстрее : set filter или locate
8 сообщений из 8, страница 1 из 1
Что быстрее : set filter или locate
    #33941855
fp-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fp-
Гость
К примеру в таблице несколько тыщ записей. Что выполниться быстрее set filter или locate ? Понятно, что конечный результат будет разный. Не в этом вопрос. А что больше загрузит сеть (сетевая программа) ?
...
Рейтинг: 0 / 0
Что быстрее : set filter или locate
    #33941875
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fp-К примеру в таблице несколько тыщ записей. Что выполниться быстрее set filter или locate ? Понятно, что конечный результат будет разный. Не в этом вопрос. А что больше загрузит сеть (сетевая программа) ?SET FILTER будет работать медленнее. Лучше построить индекс(ы). И функцией SEEK() осуществлять поиск. По моему так.
...
Рейтинг: 0 / 0
Что быстрее : set filter или locate
    #33942060
pruha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или при наличие полей по которым идет поиск в индексах
select ... Тогда рашмор дает о себе знать . Но это именно на dbf.
если это курсоры из бд (SQL,Oracle...) тогда другой подход
...
Рейтинг: 0 / 0
Что быстрее : set filter или locate
    #33942603
karly™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А самому попробовать? Сгенерировать большую табличку, положить на сетевой диск, и измерить скорость работы?

Ответы на многие вопросы по быстродействию (от чего зависит скорость работы Locate и Set Filter, как сгенерировать тестовые данные, и т.п.) можно найти в соответствующей статье на ФоксКлубе
...
Рейтинг: 0 / 0
Что быстрее : set filter или locate
    #33954303
vf-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vf-
Гость
а помимо быстродействия, есть ли в использовании FILTER TO какие-нибудь подводные камни? типа зависания базы данных при её выполнении или что-нибудь подобное. Быстродействие для меня не сильно важно, т к задача небольшая, число пользователей одновременно не больше 10, записей в основной таблице порядка 7 тыщ.
Просто итог выполнения команд LOCATE И FILTER TO разный и мне больше подходит команда FILTER TO
...
Рейтинг: 0 / 0
Что быстрее : set filter или locate
    #33954346
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vf-а помимо быстродействия, есть ли в использовании FILTER TO какие-нибудь подводные камни? типа зависания базы данных при её выполнении или что-нибудь подобное. Быстродействие для меня не сильно важно, т к задача небольшая, число пользователей одновременно не больше 10, записей в основной таблице порядка 7 тыщ.
Просто итог выполнения команд LOCATE И FILTER TO разный и мне больше подходит команда FILTER TOНу вот ведь упертый! Ему говорят: фильтр - это плохо - он не верит. ;-)
7 тыщ для SET FILTER в случае отсутствия подходящих индексов - это уже ощутимо много . А таблички со временем имеют свойство расти.
Используй в таком случае запрос в курсор по условию своего фильтра, это всяко лучше будет.
...
Рейтинг: 0 / 0
Что быстрее : set filter или locate
    #33954678
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фильтр – это некое ограничение, накладываемое при перемещении указателя записи. Причем вычисление выражения фильтра происходит каждый раз при попытке переместить указатель. Логика примерно следующая.

При подаче команды SKIP FoxPro перемещает указатель записи на следующую запись. Если эта запись не удовлетворяет условию фильтра, то FoxPro автоматически перемещает указатель на следующую запись. Опять проверяет условие фильтра. И так до тех пор, пока не будет найдена запись, удовлетворяющая условию фильтра или же не будет достигнут конец таблицы.

Другими словами, фильтр, это не что-то вычисленное один раз при подаче команды SET FILTER. Это условие, которые проверяется каждый раз при попытке перемещения на очередную запись.

Именно поэтому, если условию фильтра не соответствует большое количество записей, то перемещение по такой таблице будет происходить чрезвычайно медленно. Просто слишком возрастет время поиска очередной записи удовлетворяющей условию фильтра.

Имеет смысл использовать фильтр для отсечения небольшого количества записей. Если же надо отфильтровать (отбросить) много записей, то лучше использовать Local View или Select-SQL.
...
Рейтинг: 0 / 0
Что быстрее : set filter или locate
    #33956482
vf-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vf-
Гость
всем спасибо, теперь понятно
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Что быстрее : set filter или locate
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]