Балансировка нагрузки SQL Server Express 2008 - PullRequest
1 голос
/ 11 июня 2009

У меня есть 3 домашних ПК, на каждом из которых установлены экземпляры SQL Server Express 2008 года ... но сейчас только у моей базы данных есть только один, и я также запускаю на этом компьютере приложение, которое запрашивает кучу данных из база данных.

Я не очень много знаю об архитектуре серверов, но я прочитал некоторые руководства на веб-сайте Microsoft о том, как выполнить запрос на нескольких серверах (http://msdn.microsoft.com/en-us/library/bb964743.aspx)

Все мои запросы проходят через хранимые процедуры, поэтому, если все изменения внесены в запросы, я не думаю, что это будет трудно сделать. Мне нужна общая информация о том, как лучше всего ее настроить, вот еще несколько деталей:

  1. Мои компьютеры немного слабые, поэтому я стараюсь использовать как можно больше своих домашних компьютеров, чтобы сбалансировать нагрузку. Сейчас у меня только один компьютер с базой данных, и я запускаю приложение на том же компьютере.

  2. Моя база данных составляет около 4 ГБ.

    а. У меня есть один сохраненный процесс, который ищет определенные строки.

    б. У меня есть несколько сохраненных процедур, которые используют временные таблицы для вычисления результатов на основе данных, полученных из примерно 20-30 строк.

    с. У меня уже есть индекс по столбцам, которые я ищу.

  3. Я запускаю приложение на одном компьютере с БД, которое создает около 500 объектов, и каждый объект может иметь около 50 узлов, каждый узел запрашивает данные из базы данных, и запрос может быть сохранен для любого отдельного значения процедуры, или они могут быть к хранимым процедурам, которые создают таблицу (очевидно, последняя будет медленнее). Узлы выполняются так быстро, как база данных может справиться с нагрузкой.

  4. В настоящее время похоже, что узким местом является сервер SQL, поэтому я хотел бы распределить нагрузку на другие мои ПК.

И мои вопросы:

  1. Если я помещу базу данных на другие ПК, это увеличит производительность?

  2. Как лучше всего настроить мои SQL-серверы в этом случае?

  3. Любые другие советы / ссылки? Есть ли лучший способ решить мою проблему?

FYI: Я не хочу покупать какое-либо оборудование ... Я надеюсь на программное решение, я также жду, чтобы узнать, смогу ли я получить бесплатный сервер от друга, но даже если я получу больший сервер, я ' Еще хотелось бы узнать, как я могу сделать балансировку нагрузки.

Ответы [ 3 ]

3 голосов
/ 11 июня 2009

Купить сервер. Серьезно.

Много оперативной памяти, RAID-диски, серверная ОС, без ограничения памяти ...

Масштабирование предпочтительнее, чем масштабирование, особенно на этом низком уровне.

2 голосов
/ 11 июня 2009

Любые другие советы / ссылки? Есть ли лучший способ решить мою проблему?

ИМХО кидать аппаратную на это. Прежде чем тратить время на настройку систем / программного обеспечения, всегда работайте на чем-то, что вы, по крайней мере, можете назвать «адекватным», а не «слабым».

0 голосов
/ 11 июня 2009

Скорее всего, ваша проблема связана с IO, вызванным временными таблицами. Посмотрите, можете ли вы купить более быстрый жесткий диск (или установить жесткий диск raid 0) и разместить там базу данных tempdb Для решения проблемы, которую вы описываете, вам определенно не нужны никакие настройки кластеризации или даже несколько серверов только для чтения.

В настоящее время это выглядит как узкое место это сервер SQL, поэтому я хотел бы распределить нагрузку на другие мои ПК.

Мне любопытно, как вы пришли к такому выводу?

...