Какие рекомендации следует учитывать при ведении полнотекстовых индексов?
Должен ли я перестроить или переорганизовать полнотекстовый каталог (см. BOL )? Что такое разумная частота обслуживания? Какие эвристики (аналогичные порогам фрагментации 10% и 30%) можно использовать для определения необходимости технического обслуживания?
(Все, что ниже, - просто дополнительная информация, уточняющая вопрос и показывающая, о чем я думал до сих пор.)
Дополнительная информация: мое первоначальное исследование
Существует множество ресурсов по ведению индекса b-дерева (например, этот вопрос , сценарии Олы Хелленгрен и многочисленные публикации в блогах на эту тему с других сайтов). Однако я обнаружил, что ни один из этих ресурсов не содержит рекомендаций или сценариев для поддержки полнотекстовых индексов.
В документации Microsoft упоминается, что дефрагментация индекса b-дерева базовой таблицы и последующее выполнение REORGANIZE для полнотекстового каталога может повысить производительность, но не затрагивает более конкретные рекомендации.
Я также нашел этот вопрос , но он в основном сфокусирован на отслеживании изменений (как обновления данных в базовой таблице распространяются в полнотекстовом индексе), а не на типе регулярно запланированного обслуживания, которое может максимизировать эффективность индекса.
Дополнительная информация: базовое тестирование производительности
Эта SQL-скрипта содержит код, который можно использовать для создания полнотекстового индекса с AUTO
отслеживанием изменений и проверки как размера, так и производительности запроса индекса при изменении данных в таблице. Когда я запускаю логику сценария для копии моих производственных данных (в отличие от искусственно созданных данных в скрипте), вот сводка результатов, которые я вижу после каждого шага изменения данных:
Несмотря на то, что операторы обновления в этом скрипте были довольно надуманными, эти данные, похоже, показывают, что регулярное обслуживание может принести много пользы
Дополнительная информация: первоначальные идеи
Я думаю о создании еженедельного или еженедельного задания. Кажется, что эта задача может выполнить либо REBUILD, либо REORGANIZE.
Поскольку полнотекстовые индексы могут быть довольно большими (десятки или сотни миллионов строк), я хотел бы иметь возможность определить, достаточно ли фрагментированы индексы в каталоге, чтобы оправдать REBUILD / REORGANIZE. Мне немного непонятно, какая эвристика может иметь для этого смысл.