Blog Post

SQL Server 2008 iFTS Lessons Learned

,

We have been using SQL Server 2008 Integrated Full Text Search (iFTS) in Production at NewsGator for a little over a year, with very good results. We were able to replace a 3rd party solution that required a lot of attention, maintenance, and extra hardware, with a very simple iFTS implementation that is much easier to operate, and gives better performance on less hardware.

Of course, nothing is perfect, including iFTS. One thing I have learned is that you need to monitor the pending items count on your full text indexes when you have Auto Change Tracking enabled to make sure that everything is running properly. Otherwise, once in a while, you will find that new items are not being added as you expect.

Periodically, you should check the TableFulltextPendingChanges property to see if you see a very high number.

-- Find out how many changes are pending
SELECT OBJECTPROPERTY(OBJECT_ID('CurrentPostFullTextMonday'), 'TableFulltextPendingChanges') 
AS [Monday Full Text Pending Changes];

If you see a number over a few hundred when you run the query above, you may need to start a manual update of the full text index, like you see in the first command below:


-- Start a Manual Update of the Full Text Index
ALTER FULLTEXT INDEX ONdbo.CurrentPostFullTextMonday START UPDATE POPULATION;

A Manual Update of the index can cause a lot of memory and I/O pressure, as the pending changes are incorporated into the full text index.
  
-- Resume population in case of an error during manual population
ALTER FULLTEXT INDEX ONdbo.CurrentPostFullTextMonday RESUME POPULATION;

I call this process “giving iFTS a good kick”, and fortunately, I don’t have to do it very often.

Rate

You rated this post out of 5. Change rating

Share

Share

Rate

You rated this post out of 5. Change rating