Полнотекстовый индекс требует отбрасывания и воссоздания - почему?

Таким образом, у меня есть работа веб-приложения .net 3.5, подключенного к полю SQL 2005.

Мы делаем запланированные выпуски каждые 2 недели.

Приблизительно 14 таблиц из 250 являются индексированным полным текстом.

После не каждый выпуск, но некоторые слишком многие, индексы гадят. У них, кажется, есть данные там, но когда мы пытаемся искать их от фронтэнда или предприятия SQL, мы получаем тайм-ауты/подвешивать.

У нас есть сценарий, который отключает индексы, отбрасывания их, удаляет каталог, и затем ре создает индексы. Это решает проблему 99 раз из 100. и еще одно время, мы запускаем скрипт снова, и все это работает

Мы попытались просто восстановить полнотекстовый индекс, но это не устраняет проблему.

Мой вопрос состоит в том, почему мы должны сделать это? что мы можем сделать для улаживания индекса?

Вот является немного сценарием,

IF  EXISTS (SELECT * FROM sys.fulltext_indexes fti WHERE fti.object_id = OBJECT_ID(N'[dbo].[Address]'))
ALTER FULLTEXT INDEX ON [dbo].[Address] DISABLE
GO
IF  EXISTS (SELECT * FROM sys.fulltext_indexes fti WHERE fti.object_id = OBJECT_ID(N'[dbo].[Address]'))
DROP FULLTEXT INDEX ON [dbo].[Address]

GO



IF  EXISTS (SELECT * FROM sysfulltextcatalogs ftc WHERE ftc.name = N'DbName.FullTextCatalog')
DROP FULLTEXT CATALOG [DbName.FullTextCatalog]
GO




        -- may need this line if we get an error
        BACKUP LOG SMS2 WITH TRUNCATE_ONLY

        CREATE FULLTEXT CATALOG [DbName.FullTextCatalog] ON FILEGROUP [FullTextCatalogs]
        IN PATH N'F:\Data'
        AS DEFAULT
        AUTHORIZATION [dbo]



CREATE FULLTEXT INDEX ON [Address](CommonPlace  LANGUAGE 'ENGLISH')
     KEY INDEX PK_Address
          ON [DbName.FullTextCatalog]
     WITH 
          CHANGE_TRACKING AUTO 
go
7
задан Amjid Qureshi 21 May 2010 в 02:34
поделиться