Версия:
Microsoft SQL Server 2008 R2 (RTM) – 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1)
Проблема:
В таблице IndexTable есть полнотекстовый индекс, около 3 миллиардов строк.
При старте актуализации (populate) получаем очень много таких ошибок в FT-логе:
2012-07-17 18:34:26.04 spid25s Error ‘0x80043630: The filter daemon process MSFTEFD timed out for an unknown reason. This may indicate a bug in a filter, wordbreaker, or protocol handler.’ occurred during full-text index population for table or indexed view ‘[TS_MageDB].[dbo].[IndexTable]’ (table or indexed view ID ‘667201477’, database ID ‘7’), full-text key value ‘1986286701’. Attempt will be made to reindex it.
Продолжается это 9 дней, загрузка процессора и диска не превышает ежедневную, процесс не заканчивается.
Ничего особенно полезного здесь (в моем случае 2008 R2, а не 2008) и здесь не нашел (Только “We have therefore resolve this issue as by design”)
Решение:
Помогло только пересоздание индекса, с последующим заполнением:
DROP FULLTEXT INDEX ON [dbo].[IndexTable] CREATE FULLTEXT INDEX ON [dbo].[IndexTable]( [IndexValue] LANGUAGE [Russian]) KEY INDEX [PK_IndexTable] ON ([FT_IndexTeble], FILEGROUP [ftfg_FT_IndexTeble]) WITH (CHANGE_TRACKING = OFF, STOPLIST = SYSTEM)
или, если мы хотим запускать заполнение позже, например, ночью, то:
...CHANGE_TRACKING = OFF, NO POPULATION...
и стартуем:
ALTER FULLTEXT INDEX ON [dbo].[IndexTable] START FULL POPULATION
Процесс длился около 12 часов, ошибок больше не было.