Поделиться через


Устранение неполадок. Снижение производительности полнотекстового индексирования из-за фильтрации

При заполнении полнотекстового индекса средство полнотекстового поиска использует два типа фильтров: многопоточные и однопоточные. Некоторые документы, например документы Microsoft Word, фильтруются с помощью многопоточного фильтра. Другие, например документы формата Adobe Acrobat Portable Document Format (PDF), фильтруются с помощью однопоточного фильтра.

По причинам безопасности в SQL Server 2008 фильтры загружаются процессами узла управляющей программы фильтрации. Экземпляр сервера использует многопоточный процесс для всех многопоточных фильтров и однопоточный процесс для однопоточных фильтров. Если документ, использующий многопоточный фильтр, содержит внедренный документ, использующий однопоточный фильтр, средство полнотекстового поиска запускает однопоточный процесс для внедренного документа. Например, если документ Word содержит PDF-документ, средство полнотекстового поиска использует многопоточный процесс для содержимого Word и запускает однопоточный процесс для PDF-содержимого. Однако однопоточный фильтр может неправильно работать в такой среде, дестабилизируя процесс фильтрации. В некоторых обстоятельствах, когда часто встречаются такие внедрения, дестабилизация может привести к сбою процесса фильтрации. В этом случае средство полнотекстового поиска перенаправляет сбойный документ (например, документ Word, содержащий внедренный PDF-документ) в однопоточный процесс фильтрации. Если перенаправление происходит достаточно часто, производительность полнотекстового индексирования снижается.

Для устранения этой проблемы необходимо пометить фильтр для документа-контейнера (в данном случае Microsoft Word) как однопоточный фильтр. Чтобы пометить фильтр как однопоточный, можно изменить значение для этого фильтра в реестре. Для этого необходимо присвоить ключу реестра ThreadingModel для этого фильтра значение Apartment Threaded. Сведения об однопоточных контейнерах см. в разделе Oсновные сведения о моделях потоков COM.