Blog

Why would you want to run multiple indexer tasks?


Tags :


Let's make this plain and simple. A customer was having a hard time keeping up with a certain large database.  So they inquired on multiple indexers.  Here is what I found documented and wanted to share.

The Indexer works from a queue that contains various requests for databases to be indexed.  The Indexer reads a request from this queue, removes it from the queue, and performs the indexing functions.  Therefore a single Indexer task works on a single database that it pulled from the queue.  If a second request comes into the queue, the next indexer then removes the request from the queue and starts working on it.  If both of these requests are for the same database, then the two tasks will work on the same database.  More than likely, however, the two tasks will work on different databases.  

Multiple Update tasks can update different view indexes within the same database at the same time.  However, the full text index is one index; therefore multiple Update processes cannot update the same full text index.

NOTE:  Having multiple indexers does not mean that performance will improve.  Both tasks would be in contention for the same database semaphore.

In essence running more than one can be quite helpful, but not for full-text issues.