|
|
|
Что быстрее : set filter или locate
|
|||
|---|---|---|---|
|
#18+
К примеру в таблице несколько тыщ записей. Что выполниться быстрее set filter или locate ? Понятно, что конечный результат будет разный. Не в этом вопрос. А что больше загрузит сеть (сетевая программа) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2006, 07:07 |
|
||
|
Что быстрее : set filter или locate
|
|||
|---|---|---|---|
|
#18+
fp-К примеру в таблице несколько тыщ записей. Что выполниться быстрее set filter или locate ? Понятно, что конечный результат будет разный. Не в этом вопрос. А что больше загрузит сеть (сетевая программа) ?SET FILTER будет работать медленнее. Лучше построить индекс(ы). И функцией SEEK() осуществлять поиск. По моему так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2006, 07:33 |
|
||
|
Что быстрее : set filter или locate
|
|||
|---|---|---|---|
|
#18+
Или при наличие полей по которым идет поиск в индексах select ... Тогда рашмор дает о себе знать . Но это именно на dbf. если это курсоры из бд (SQL,Oracle...) тогда другой подход ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2006, 09:48 |
|
||
|
Что быстрее : set filter или locate
|
|||
|---|---|---|---|
|
#18+
А самому попробовать? Сгенерировать большую табличку, положить на сетевой диск, и измерить скорость работы? Ответы на многие вопросы по быстродействию (от чего зависит скорость работы Locate и Set Filter, как сгенерировать тестовые данные, и т.п.) можно найти в соответствующей статье на ФоксКлубе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2006, 12:19 |
|
||
|
Что быстрее : set filter или locate
|
|||
|---|---|---|---|
|
#18+
а помимо быстродействия, есть ли в использовании FILTER TO какие-нибудь подводные камни? типа зависания базы данных при её выполнении или что-нибудь подобное. Быстродействие для меня не сильно важно, т к задача небольшая, число пользователей одновременно не больше 10, записей в основной таблице порядка 7 тыщ. Просто итог выполнения команд LOCATE И FILTER TO разный и мне больше подходит команда FILTER TO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 08:40 |
|
||
|
Что быстрее : set filter или locate
|
|||
|---|---|---|---|
|
#18+
vf-а помимо быстродействия, есть ли в использовании FILTER TO какие-нибудь подводные камни? типа зависания базы данных при её выполнении или что-нибудь подобное. Быстродействие для меня не сильно важно, т к задача небольшая, число пользователей одновременно не больше 10, записей в основной таблице порядка 7 тыщ. Просто итог выполнения команд LOCATE И FILTER TO разный и мне больше подходит команда FILTER TOНу вот ведь упертый! Ему говорят: фильтр - это плохо - он не верит. ;-) 7 тыщ для SET FILTER в случае отсутствия подходящих индексов - это уже ощутимо много . А таблички со временем имеют свойство расти. Используй в таком случае запрос в курсор по условию своего фильтра, это всяко лучше будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 09:09 |
|
||
|
Что быстрее : set filter или locate
|
|||
|---|---|---|---|
|
#18+
Фильтр – это некое ограничение, накладываемое при перемещении указателя записи. Причем вычисление выражения фильтра происходит каждый раз при попытке переместить указатель. Логика примерно следующая. При подаче команды SKIP FoxPro перемещает указатель записи на следующую запись. Если эта запись не удовлетворяет условию фильтра, то FoxPro автоматически перемещает указатель на следующую запись. Опять проверяет условие фильтра. И так до тех пор, пока не будет найдена запись, удовлетворяющая условию фильтра или же не будет достигнут конец таблицы. Другими словами, фильтр, это не что-то вычисленное один раз при подаче команды SET FILTER. Это условие, которые проверяется каждый раз при попытке перемещения на очередную запись. Именно поэтому, если условию фильтра не соответствует большое количество записей, то перемещение по такой таблице будет происходить чрезвычайно медленно. Просто слишком возрастет время поиска очередной записи удовлетворяющей условию фильтра. Имеет смысл использовать фильтр для отсечения небольшого количества записей. Если же надо отфильтровать (отбросить) много записей, то лучше использовать Local View или Select-SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 10:58 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33942603&tid=1590874]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 472ms |

| 0 / 0 |
