Ухудшенная производительность при вставке в таблицу полнотекстового индекса на Sql Server 2005 - PullRequest
3 голосов
/ 21 июля 2010

Я пытаюсь выполнить большую вставку записей в таблицу с полнотекстовой индексацией.У меня установлено отслеживание изменений auto.

Записи вставляются из другой таблицы, номерами обычно около 50 000 одновременно.В SQL Server 2008 это занимает около 5 секунд.Но работа в нашей среде 2005 года занимает более 10 минут.

Глядя на планы выполнения, кажется, что вставка в кластеризованный индекс таблиц полнотекстового отслеживания является проблемой.Столбец первичного ключа - uniqueidentifier, выделенный с newsequentialid().Но в то время как 2008 делает 1 объединение кластеризованных индексов на fulltext_index_docidstatus, 2005 делает вставку кластерных индексов 50000 раз на fulltext_index_map.

К сожалению, обновление сервера сейчас не вариант.Отключение отслеживания изменений решает проблему, но я действительно не хочу этого делать, так как управление населением не будет хорошим.Отслеживание изменений, по-видимому, является самым быстрым способом получения новых записей в полнотекстовом индексе, и это является приоритетом.

Есть ли способ обойти это, сохранив отслеживание изменений включенным?

1 Ответ

2 голосов
/ 21 июля 2010

Я подозреваю, что истинная природа вашей проблемы заключается в том, что полнотекстовый движок был перемещен внутри SQL Server в 2008 году, тогда как в предыдущих версиях использовался внешний сервис MSFTESQL.Это означает, что SQL 2008 может в полной мере использовать преимущества операций на основе множеств при работе с полнотекстовыми индексами, в то время как, как вы видели, 2005 должен обрабатывать каждую строку индивидуально.Более подробную информацию можно найти в этом Microsoft White Paper .Суть в том, что я думаю, что вам придется отключить отслеживание изменений, чтобы добиться требуемой производительности или жить с длительным временем вставки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...