Контекстный поиск в Browse

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2344
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз

Контекстный поиск в Browse

Сообщение Губин Игорь »

Как большой спец по подобной проблеме :cat: делюсь своим бесценным :idied: опытом:

Поиск по Match/Instring gпо файлу на диске заметно медленнее, чем по IMDD или Queue
Сам поиск производится достаточно быстро (250т. записей, по, максимум, 50к на запись), что позволяет реализовывать, фактически, фильтр в Browse в режиме онлине, т.е. клиент набирает в поле, а в списке сразу отражается

А вот процесс ЗАНЕСЕНИЯ в память с диска далеко не тривиален. Любое наличие ключей в IMDD или использование Queue с сортировкой тормозит процесс очень знатно.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7387
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 14 раз
Поблагодарили: 49 раз

Контекстный поиск в Browse

Сообщение Игорь Столяров »

Губин Игорь писал(а): Любое наличие ключей в IMDD или использование Queue с сортировкой тормозит процесс очень знатно.
Просто добавляем записи Append() и перестраиваем потом ключи Build() или Sort() для QUEUE.
Губин Игорь писал(а): Поиск по Match/Instring по файлу на диске заметно медленнее, чем по IMDD или Queue
А вот за это наблюдение отдельное спасибо. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2344
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз

Контекстный поиск в Browse

Сообщение Губин Игорь »

Игорь Столяров писал(а): Просто добавляем записи Append() и перестраиваем потом ключи Build() или Sort() для QUEUE.
ЩаЗЗЗЗЗЗ. Не смотрите на мою подпись :P
Не всё так просто. Дело в том, что выигрыш Append + Build для IMDD или Sort для Queue, при правильном занесении данных в память, по сравнению с Add не то, чтобы минимален, а то и занимает больше времени.

Я неделю убил на проверку разных вариантов организации работы с поиском по контексту по файлу. И все проверялось с секундомером.

Под правильным занесением подразумевается такой порядок добавления записей, когда ввод идёт, фактически, в порядке возрастания ключа, да и сам ключ минимален по объёму.
Игорь Столяров писал(а): А вот за это наблюдение отдельное спасибо. :)
Всегда пожалуйста. Когда я сделал такое - клиенты запищали в экстазе.

Учти, что под "медленнее" я подразумевал не просто поиск по готовым файлам, а комплекс (подкачка в память+поиск). И выигрыш есть даже для однократного поиска.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4631
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 7 раз
Поблагодарили: 37 раз

Контекстный поиск в Browse

Сообщение finsoftrz »

Привет.
В ШВС есть фильтр по очереди. Там вначале идентификаторы нужных записей отбираются в кьюшку, а затем уже по списку идентификаторов формируется строка фильтра. Проблема медленной работы броуза в постоянном пересчитывании записей, а с фиксированным списком работает шустро. Пробовал как раз на 100+ тыс записей (справочник товаров), причем поиск не просто по фрагменту, а по набору фрагментов (то есть для каждой записи проверяется несколько instring). Единственный момент, есть ограничение по количеству отобранных записей, поэтому приходится делать их постраничное переключение, если много. По сети не пробовал, у нас таких клиентов, можно сказать, нет... Пользователям нравится.
C6/C11, ШВС, tps/btrieve.
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Контекстный поиск в Browse

Сообщение Shur »

Игорь,
кажется мы примерно всё то же самое уже обсуждали вот здесь 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 полтора года назад.
Вечные проблемы... Любовь, смерть, ускорение поиска по записям... :idied:

Да, я пару лет назад проводил аналогичное исследование, а вот в начале года повторил его "на новом уровне", перебирая уже все возможные варианты.
Кстати, всплыло и много интересного по работе клариона с файлами в сети, но я это уже, тоже, писал
Это я только кажусь дураком! На самом деле я полный идиот!
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Контекстный поиск в Browse

Сообщение Shur »

Игорь Столяров писал(а): Все работает. Но мееееедленно. Особенно в сети. Может быть есть идеи по альтернативному варианту контекстного поиска в Browse ?Заранее спасибо за идею.
Про медленно по сети. Напишите серверное приложение а-ля сервис, которое для снижения трафика по сети было бы запущено на сервере данных. В своих внутренностях оно [приложение] могло бы иметь QUEUE, IMDD или таблицу поиска (см. ссылку 1 постом выше) -- как захотите. На входе бы получало строку поиска, на выходе список ID подходящих записей. Оставалось бы вывести в броуз записи по выданному списку.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7387
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 14 раз
Поблагодарили: 49 раз

Контекстный поиск в Browse

Сообщение Игорь Столяров »

Shur писал(а):Оставалось бы вывести в броуз записи по выданному списку.
Зачем же так напрягаться ? Существует SV IP Driver, который в принципе описанный функционал и реализует ...
За теми кто отстал - не возвращаться. (С) Кодекс
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Контекстный поиск в Browse

Сообщение Shur »

Игорь Столяров писал(а):
Shur писал(а):Оставалось бы вывести в броуз записи по выданному списку.
Зачем же так напрягаться ? Существует SV IP Driver, который в принципе описанный функционал и реализует ...
Ну ещё лучше. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7387
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 14 раз
Поблагодарили: 49 раз

Контекстный поиск в Browse

Сообщение Игорь Столяров »

Shur писал(а): Ну ещё лучше.
Это да, если бы он только был доступен, то и проблемы не было. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2344
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз

Контекстный поиск в Browse

Сообщение Губин Игорь »

Shur писал(а):
Игорь Столяров писал(а):
Shur писал(а):Оставалось бы вывести в броуз записи по выданному списку.
Зачем же так напрягаться ? Существует SV IP Driver, который в принципе описанный функционал и реализует ...
Ну ещё лучше. :)
Да, только не годится для случая, когда любое изменение в системе заказчика должно быть сведено к минимуму, в крайнем случае, легко производиться и администрироваться, желательно силами "удалённой" секретарши :idied:
Это я только кажусь дураком! На самом деле я полный идиот!
kreator
✯ Ветеран ✯
Сообщения: 4994
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 21 раз

Контекстный поиск в Browse

Сообщение kreator »

Полтора года назад было требование "SQL не предлагать". Может сейчас всё-таки предлагать? Разработчики SQL всё-таки делают что-то для этого дела.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7387
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 14 раз
Поблагодарили: 49 раз

Контекстный поиск в Browse

Сообщение Игорь Столяров »

kreator писал(а): Может сейчас всё-таки предлагать?
SQL занимаемся, и конкретно Firebird. Купил на OZON толстую книжку, читаю. Но это так сказать перспектива.
А есть хлеб насущный, большие проекты, которые нужно поддерживать в том виде как они есть ... :)
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4994
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 21 раз

Контекстный поиск в Browse

Сообщение kreator »

Вообще проблема не так проста. Если копнуть глубже, то никакой instring и даже like не годится. MS, например, предлагает - https://technet.microsoft.com/ru-ru/lib ... .105).aspx.
We are hard at work… for you. :)
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Контекстный поиск в Browse

Сообщение Shur »

Ответить