• No problem!

    Since my previous reply I've had more caffeine, and remembered that I was incorrect in one very important way, namely, you can get some blocking.

    Writes to the source index do have to be applied to the target index, and I have seen cases where the rebuild process is taking its X locks at the page level on the target index, and writes from user processes are taking X locks at the key level, and thus an IX lock at the page level.

    In that case, the X locks on the pages in the target index will block the IX locks being taken by the user writes.

    I'd bet dollars to donuts that if you looked at wait stats before and after the rebuild (with concurrent user activity), you'd see a huge spike in LCK_M_IX waits from the sort of scenario described above.

    In that specific scenario, you can mitigate the blocking by disallowing one of the lock types and then just changing the option back when the rebuild is done. So long as both processes have to take out the same sort of lock, the blocking is reduced (in my tests, at least). It's most reduced by disallowing page locks, but that does slow the rebuild fairly substantially.

    Cheers!