2016-02-13 8 views
2

У меня есть двухэтапное задание, периодически выполняющееся в SQL Server 2012.полный текстовый каталог rebuild vs full text index start full populaton

  1. ALTER FULLTEXT CATALOG [CatalogName] REBUILD
  2. ALTER FULLTEXT INDEX ON [tblname] START FULL POPULATION

я не получил назначение второго шага, потому что Google говорит, что на самом первом этапе SQL Server воссоздает каталог и генерирует индексы.

Я был бы признателен, если бы кто-нибудь мог помочь мне в понимании того, что происходит внутри во время выполнения выше двух шагов.

ответ

1
ALTER FULLTEXT CATALOG [CatalogName] REBUILD 

Удаляет каталог и создает новый. Если в этом каталоге есть много индексов, эта перестройка может занять много времени.

ALTER FULLTEXT INDEX ON [tblname] START FULL POPULATION 

Перестроить только индексы на одной из таблиц.

Если у вас мало индексов в одном каталоге, оба шага равны. Но если размер Каталога намного больше и состоит из многих индексов, для первого шага потребуется гораздо больше времени для запуска.

+0

У нас есть одно к одному сопоставление. Один каталог содержит один индекс, соответствующий одной таблице. Я думаю, что в этом случае я могу удалить любой из двух шагов. У нас есть преимущество в производительности одного над другим (у меня сейчас около 208386 строк)? –

+0

В этом случае эти 2 шага равны. – gofr1

+0

Первоначально я думал, что два шага занимают много времени и пространства транзакций. Я удалил шаг 2, а затем попытался снова запустить задание. Это заняло более 90 ГБ пространства журнала транзакций и все еще работает только для 2 строк. То же самое задание выполняется на другом сервере всего за 10 секунд. Можете ли вы предложить, как я могу достичь основной причины или что может мешать этой работе? –

 Смежные вопросы

  • Нет связанных вопросов^_^