Это должны быть отдельные экземпляры или же отдельные базы данных в одном экземпляре?
Обработку в несколько потоков обеспечит и 1 инстанс, поэтому в этом плане разницы нет, а несколько инстансов дадут большие накладные расходы. Но, те же самые долгие блокировки возникают из-за ограничений железа, например по IO, которые нужно решать несколькими физическими серверами. Поэтому дело в другом.
Вы создаете 100 шардов и больше для того, чтобы балансировать нагрузку. Т.е. перебрасывая шарды с одного физического сервера на другой, вы сможете распределять нагрузку, а заранее расшардировав на большое кол-во шард, можете это делать гибче не меняя ничего в коде. Заведение шардов на отдельных инстансах удобно для измерения нагрузки на них, именно нагрузки на железо, по-другому ее не замерить. Но заведение отдельного инстанса на каждый шард, тоже веселье, в плане накладных расходов в системе на обслуживание каждого инстанса. Поэтому нет идеального решения, нужно решать для каждой конкретной задачи, и продумывать, как будет выгоднее.