I am facing a problem where my content database has grown very large, and whenever I initiate a crawl, the the crawler executes a very complex SQL query on the content database, and this query blocks all other queries that execute on the content DB. As a result, my sites either hang, or become very slow in loading pages.

How do I solve this problem? Can I use mirroring in some way to resolve this issue?

Is it possible to mirror the content DB, and run the crawl exclusively on the mirrored DB so that the sql performance of my front end servers are not affected?

  • 1
    When are you initializing the crawl? Is it done off hours?
    – Mike
    Feb 10, 2012 at 17:55
  • 1
    How large is "very large"? Feb 11, 2012 at 10:26
  • It has around 100K list items, with each list item having 50 to 200 columns. Feb 12, 2012 at 11:58

2 Answers 2


Have you considered splitting the content Databases into smaller chunks?

I see a few benefits for doing this :

  1. Crawler performance
  2. Page Response Times
  3. Reduce App Pool Recycle Times

Since you are talking about Mirroring DB's I am going to take the liberty of thinking that you may have the capability of having multiple SQL Servers. Consider moving content DB across multiple SQL Servers as well.


Consider following options:

  1. Run the crawl during off hours

  2. Optimize crawl schedule and avoid unnecessary full crawls

  3. Use crawl impact rule to mininize the impact of crawl on the web server performance.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.