Ну, SQL Server на самом деле не имеет механизма балансировки нагрузки внутри и вне его. Однако он поддерживает конфигурацию активного / пассивного узла, а также репликацию.
Мы используем стратегию репликации в одном приложении, которое я поддерживаю. Вы можете прочитать больше об этом здесь:
http://msdn.microsoft.com/en-us/library/ms151198.aspx
В нашей конфигурации мы в основном имеем транзакционную базу данных и базу данных отчетов. Мы копируем данные из нашей транзакционной БД в отчетную БД. Все отчеты создаются для этой базы данных отчетов, поэтому мы не замедляем работу над транзакционной базой данных из-за какого-то длительного отчета.
Обратите внимание, что репликация на самом деле не в реальном времени. Другими словами, на репликацию данных из транзакционной базы данных в отчетную БД уходит некоторое время, хотя и очень небольшое. Но репликация, безусловно, одна из стратегий, которую вы могли бы рассмотреть, если пытаетесь сбалансировать рабочую нагрузку.
Другие вещи, которые вы могли бы рассмотреть, - это разбиение больших таблиц для повышения производительности.
Как указал в своем комментарии gbn, лучше определить, действительно ли вам нужны эти стратегии, прежде чем внедрять их, потому что они добавляют много сложностей и усилий по обслуживанию, которые могут даже не понадобиться. Важно правильно проанализировать, сколько данных, по вашему мнению, у вас будет, и сколько действий будет происходить с этими данными, чтобы определить, нужны ли даже стратегии, подобные тем, которые я только что описал.
Кроме того, вы можете обратиться к этой ссылке для получения некоторой другой полезной информации и некоторых ссылок на технические документы, которые могут оказаться полезными:
http://social.msdn.microsoft.com/Forums/en/sqldisasterrecovery/thread/05cf41b7-c558-44bf-86c6-12f5c2b2ffe2