Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2008 Forums
 SQL Server Administration (2008)
 Fulltext rebuild vs reorganize

Author  Topic 

mohdowais
Sheikh of Yak Knowledge

1456 Posts

Posted - 2011-07-07 : 09:19:51
I have been doing quite a bit of research of scaling up Fulltext population on SQL Server 2008 (see my question here [url]http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=162673[/url]) and I am noticing something that I have never realized before. It seems that periodically rebuilding a fulltext catalog is completely unnecessary and it would be sufficient to simply have daily incremental or update indexing on the fulltext index, while running a REORGANIZE on the catalog once a week. Apparently, a REBUILD is only required if there are fundamental changes to your catalog, such as a change in the stoplist or wordbreaker.

I cannot find any definitive sources to confirm this, but what does your experience suggest? If this is true, it would take away a major source of pain that we are having at the moment.

Thanks

OS

muratos
Starting Member

22 Posts

Posted - 2011-07-08 : 11:59:42
I don't have enough info specifically on fulltext but if we are talking about indexes in general, rebuilding is required when there is excessive fragmentation which can result in performance problems.

There should be a dmv to see fulltext index fragmentations as well.

Generally, these rebuild operations are made at quiet night hours daily 04:00 for example, only on a predefined % fragmented indexes.
Go to Top of Page

mohdowais
Sheikh of Yak Knowledge

1456 Posts

Posted - 2011-07-10 : 05:04:08
Hi there and thanks for your input. It's a good point and I will try to monitor the fragmentation levels to see if re-organize is sufficient.

There is no DMV for this, but you can query the system catalog to do tell you how many file fragments each fulltext index has:

SELECT OBJECT_NAME([table_id]) AS TableName, COUNT([fragment_id]) AS Fragments
FROM sys.fulltext_index_fragments
GROUP BY OBJECT_NAME([table_id])

The guidelines seem to be that once your fulltext index exceeds 30-50 fragments, you should run a REORGANIZE on the index. While the concepts of rebuild vs reorganize seem to be quite similar for both regular and fulltext indexes, the implementation is quite different and hence my question.

Running a weekly re-organize on our fulltext index takes less than 15 minutes. A rebuild, on the other hand, takes 2 days. Which is why I was trying to determine if there is any need to run a rebuild at all. At the moment, I have disabled the rebuilds and replaced them with reorganize. I will monitor the fragmentation levels (and consequently, fulltext search speeds) for the next few weeks and let you know how it goes.

Thanks


OS
Go to Top of Page

mohdowais
Sheikh of Yak Knowledge

1456 Posts

Posted - 2011-11-15 : 03:18:02
Just a quick update to let you know that we've been running this setup for the last three months and it seems to be working perfectly. The FT index will usually be 20-100 fragments by the end of the week and the REORGANIZE manages to bring this down to one. Query speeds get slightly slower by the end of the week, but they bounce right back after the REORGANIZE. Overall, the solution seems to be working fine.

Hope this helps somebody.

OS
Go to Top of Page
   

- Advertisement -