Контекстный поиск в Browse
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2344
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Контекстный поиск в Browse
Как большой спец по подобной проблеме делюсь своим бесценным опытом:
Поиск по Match/Instring gпо файлу на диске заметно медленнее, чем по IMDD или Queue
Сам поиск производится достаточно быстро (250т. записей, по, максимум, 50к на запись), что позволяет реализовывать, фактически, фильтр в Browse в режиме онлине, т.е. клиент набирает в поле, а в списке сразу отражается
А вот процесс ЗАНЕСЕНИЯ в память с диска далеко не тривиален. Любое наличие ключей в IMDD или использование Queue с сортировкой тормозит процесс очень знатно.
Поиск по Match/Instring gпо файлу на диске заметно медленнее, чем по IMDD или Queue
Сам поиск производится достаточно быстро (250т. записей, по, максимум, 50к на запись), что позволяет реализовывать, фактически, фильтр в Browse в режиме онлине, т.е. клиент набирает в поле, а в списке сразу отражается
А вот процесс ЗАНЕСЕНИЯ в память с диска далеко не тривиален. Любое наличие ключей в IMDD или использование Queue с сортировкой тормозит процесс очень знатно.
Это я только кажусь дураком! На самом деле я полный идиот!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7387
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 14 раз
- Поблагодарили: 49 раз
Контекстный поиск в Browse
Просто добавляем записи Append() и перестраиваем потом ключи Build() или Sort() для QUEUE.
А вот за это наблюдение отдельное спасибо.
За теми кто отстал - не возвращаться. (С) Кодекс
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2344
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Контекстный поиск в Browse
ЩаЗЗЗЗЗЗ. Не смотрите на мою подписьИгорь Столяров писал(а): Просто добавляем записи Append() и перестраиваем потом ключи Build() или Sort() для QUEUE.
Не всё так просто. Дело в том, что выигрыш Append + Build для IMDD или Sort для Queue, при правильном занесении данных в память, по сравнению с Add не то, чтобы минимален, а то и занимает больше времени.
Я неделю убил на проверку разных вариантов организации работы с поиском по контексту по файлу. И все проверялось с секундомером.
Под правильным занесением подразумевается такой порядок добавления записей, когда ввод идёт, фактически, в порядке возрастания ключа, да и сам ключ минимален по объёму.
Всегда пожалуйста. Когда я сделал такое - клиенты запищали в экстазе.Игорь Столяров писал(а): А вот за это наблюдение отдельное спасибо.
Учти, что под "медленнее" я подразумевал не просто поиск по готовым файлам, а комплекс (подкачка в память+поиск). И выигрыш есть даже для однократного поиска.
Это я только кажусь дураком! На самом деле я полный идиот!
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4631
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 7 раз
- Поблагодарили: 37 раз
Контекстный поиск в Browse
Привет.
В ШВС есть фильтр по очереди. Там вначале идентификаторы нужных записей отбираются в кьюшку, а затем уже по списку идентификаторов формируется строка фильтра. Проблема медленной работы броуза в постоянном пересчитывании записей, а с фиксированным списком работает шустро. Пробовал как раз на 100+ тыс записей (справочник товаров), причем поиск не просто по фрагменту, а по набору фрагментов (то есть для каждой записи проверяется несколько instring). Единственный момент, есть ограничение по количеству отобранных записей, поэтому приходится делать их постраничное переключение, если много. По сети не пробовал, у нас таких клиентов, можно сказать, нет... Пользователям нравится.
В ШВС есть фильтр по очереди. Там вначале идентификаторы нужных записей отбираются в кьюшку, а затем уже по списку идентификаторов формируется строка фильтра. Проблема медленной работы броуза в постоянном пересчитывании записей, а с фиксированным списком работает шустро. Пробовал как раз на 100+ тыс записей (справочник товаров), причем поиск не просто по фрагменту, а по набору фрагментов (то есть для каждой записи проверяется несколько instring). Единственный момент, есть ограничение по количеству отобранных записей, поэтому приходится делать их постраничное переключение, если много. По сети не пробовал, у нас таких клиентов, можно сказать, нет... Пользователям нравится.
C6/C11, ШВС, tps/btrieve.
Контекстный поиск в Browse
Игорь,
кажется мы примерно всё то же самое уже обсуждали вот здесь http://forum.clarionlife.net/phpbb/viewtopic.php?t=3301 полтора года назад.
кажется мы примерно всё то же самое уже обсуждали вот здесь http://forum.clarionlife.net/phpbb/viewtopic.php?t=3301 полтора года назад.
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2344
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Контекстный поиск в Browse
Вечные проблемы... Любовь, смерть, ускорение поиска по записям...Shur писал(а): Игорь,
кажется мы примерно всё то же самое уже обсуждали вот здесь http://forum.clarionlife.net/phpbb/viewtopic.php?t=3301 полтора года назад.
Да, я пару лет назад проводил аналогичное исследование, а вот в начале года повторил его "на новом уровне", перебирая уже все возможные варианты.
Кстати, всплыло и много интересного по работе клариона с файлами в сети, но я это уже, тоже, писал
Это я только кажусь дураком! На самом деле я полный идиот!
Контекстный поиск в Browse
Про медленно по сети. Напишите серверное приложение а-ля сервис, которое для снижения трафика по сети было бы запущено на сервере данных. В своих внутренностях оно [приложение] могло бы иметь QUEUE, IMDD или таблицу поиска (см. ссылку 1 постом выше) -- как захотите. На входе бы получало строку поиска, на выходе список ID подходящих записей. Оставалось бы вывести в броуз записи по выданному списку.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7387
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 14 раз
- Поблагодарили: 49 раз
Контекстный поиск в Browse
Зачем же так напрягаться ? Существует SV IP Driver, который в принципе описанный функционал и реализует ...Shur писал(а):Оставалось бы вывести в броуз записи по выданному списку.
За теми кто отстал - не возвращаться. (С) Кодекс
- Игорь Столяров
- Ветеран движения
- Сообщения: 7387
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 14 раз
- Поблагодарили: 49 раз
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2344
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Контекстный поиск в Browse
Да, только не годится для случая, когда любое изменение в системе заказчика должно быть сведено к минимуму, в крайнем случае, легко производиться и администрироваться, желательно силами "удалённой" секретарши
Это я только кажусь дураком! На самом деле я полный идиот!
-
- ✯ Ветеран ✯
- Сообщения: 4994
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 21 раз
Контекстный поиск в Browse
Полтора года назад было требование "SQL не предлагать". Может сейчас всё-таки предлагать? Разработчики SQL всё-таки делают что-то для этого дела.
We are hard at work… for you.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7387
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 14 раз
- Поблагодарили: 49 раз
Контекстный поиск в Browse
SQL занимаемся, и конкретно Firebird. Купил на OZON толстую книжку, читаю. Но это так сказать перспектива.
А есть хлеб насущный, большие проекты, которые нужно поддерживать в том виде как они есть ...
За теми кто отстал - не возвращаться. (С) Кодекс
-
- ✯ Ветеран ✯
- Сообщения: 4994
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 21 раз
Контекстный поиск в Browse
Вообще проблема не так проста. Если копнуть глубже, то никакой instring и даже like не годится. MS, например, предлагает - https://technet.microsoft.com/ru-ru/lib ... .105).aspx.
We are hard at work… for you.