Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Полнотекстовый поиск в 1С 8.1 (слияние индексов)


Автор: AkelaSQL 26.1.2010, 11:01
Кто в двух словах пояснит.
В настройке полнотекстового поиска есть флаг "Разрешить слияние индексов".
С чем это едят и не будет ли отравления?

Интересует, что происходит при установке этого флага и дальнейшее его влияние на сам поиск...


Гугл мне ответа почему-то не дал....

Автор: Zero 26.1.2010, 22:20
Цитата(AkelaSQL @  26.1.2010,  11:01 Найти цитируемый пост)
Интересует, что происходит при установке этого флага и дальнейшее его влияние на сам поиск...

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

Теперь подробнее. Полнотекстовый индекс состоит из двух частей: Основной индекс и дополнительный.
Основной индекс обеспечивает высокую скорость поиска данных даже при большом объёме данных, но его обновление происходит относительно медленнее, чем больше этот объём.
Дополнительный индекс ему противоположен - независимо от объёма данных, добавление в него данных происходит быстро, но при большом объёме медленно осуществляется в нём поиск.
Поиск осуществляется одновременно и в основном индексе и в дополнительном.
Суть использования обеих видов индексов состоит в том, что основная масса данных находится в основном индексе и их поиск осуществляется быстро. А новые данные добавляемые в систему с определённой периодичностью (например раз в 10 минут или раз в час, в завис. от потребностей) добавляются в доп. индекс и не оказывают сильного влияния на производительность системы.
Затем во время низкой загрузки системы, например ночью происходит слияние этих дополнительных индексов в основные, а дополнительные очищаются.
Суть флага "Разрешить слияние индексов" указывает системе, необходимость создания дополнительных резервов для хранения информации о дополнительном индексе. По умолчанию дополнительный индекс не используется и 1с-ка по умолчанию оперирует лишь основным индексом.

Автор: AkelaSQL 27.1.2010, 15:33
Спасибо, в принципе всё понятно.

Т.е. если этого флага нет, то она 1 раз в 10 мин. (Настроено регламентное задание) обновляет непосредственно основной индекс? Т.е. тормозит...

А что же тогда она делает при выполнениии ночью регл. задания "Слияние индексов"?

Автор: Zero 29.1.2010, 19:38
Цитата(AkelaSQL @  27.1.2010,  15:33 Найти цитируемый пост)
Т.е. если этого флага нет, то она 1 раз в 10 мин.  обновляет непосредственно основной индекс? Т.е. тормозит...

1с сама по себе не делает ничего. 10 мин я привёл в качестве примера. Обновление основного и/или дополнительного индекса можно делать программно.
С точки зрения логики, разумно будет написать обработку которая например в течении рабочего дня будет обновлять дополнительный индекс с каким-нибудь интервалом времени (а т.к. он обновляется быстро, то страшного ничего нету, с точки зрения нагрузки на систему)
А ночью пусть происходит слияние из дополнительного в основной, т.к. если это делать днём, то можно повесить систему.
После чего дополнительный индекс очищается и тем самым на утро приготовится к приёму новых данных smile 

Автор: AkelaSQL 29.1.2010, 19:46
Цитата

1с сама по себе не делает ничего


это я написал, основываясь на дефолтных настройках регламентных заданий в типовой конфе. Всем спасибо разобрался.

ИТОГ:
1. флажок "Разрешить слияние ставить не нужно" - будет тормозить при обновлении текущего индекса, т.к. будет сразу происходить и его слияние с основным.
2. Нужно настроить 2 регламентных задания:
    - обновление текущего индекса - часто (мин. 10 или на ваш выбор)
    - слияние индексов - 1 раз в ночное время (время простоя)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)