Как масштабировать SQL Azure? - PullRequest
9 голосов
/ 25 мая 2011

Я хочу разместить свои службы WCF в облаках Azure из соображений масштабируемости. Например, будет некоторое действие чтения данных. И это будет под высокой нагрузкой (1000+ пользователь / сек). (Как и в моем предыдущем вопросе )

Также у меня есть ограничение в 1 сек. Для любого запроса.

Мой сервис будет связан с SQL Azure. Я выбрал его из-за небольшой задержки (не более 7 мс согласно тесту Microsoft )

Сколько одновременных подключений может содержать SQL Azure на экземпляр / базу данных?

Есть ли возможность масштабировать SQL Azure, когда я достигну лимита соединений на экземпляр?

Другие решения, варианты для моего сценария?

Спасибо.

Ответы [ 4 ]

6 голосов
/ 26 мая 2011

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

Еще одним соображением является использование MARS. Если вам поступает много запросов, вы можете объединить их в один запрос, то есть в одно соединение, и вернуть несколько наборов результатов. В этом посте я обсуждаю, как реализовать одностороннюю организацию очередей операторов SQL; это может не работать для вас как есть, потому что вы можете ожидать ответа, но это может дать вам некоторые идеи о том, как реализовать пакет запросов, чтобы минимизировать количество соединений и минимизировать время ожидания.

Наконец, вы можете взглянуть на этот инструмент, который я написал в прошлом году, чтобы проверить соединения / операторы с SQL Azure. Инструмент автоматически отключает пул соединений для измерения эффектов параллелизма. Вы можете скачать его здесь .

Наконец, я также написал Библиотеку Энцо Шарда в кодекплексе. Дайте мне знать, если у вас есть какие-либо вопросы, если вы решите исследовать библиотеку для вашего проекта. Обратите внимание, что библиотека будет развиваться для поддержки будущих возможностей SQL Azure Data Federation.

4 голосов
/ 25 мая 2011

Похоже, что нет прямого ограничения на количество подключений, доступных на экземпляр SQL Azure, но Microsoft заявляет, что они оставляют за собой право ограничивать подключения в ситуациях, когда использование ресурсов рассматривается как «чрезмерное».

Есть некоторая информация об этом здесь , а также подробная информация о том, что может произойти в этой ситуации здесь .

Хорошим решением является «разделение», когда вы разделяете свои данные по некоторым легко определяемым критериям и имеете несколько баз данных.Это, конечно, влечет за собой дополнительные расходы.Вот пример правильной реализации: http://enzosqlshard.codeplex.com/

Также: у Azurescope есть были некоторые интересные тесты: http://azurescope.cloudapp.net/BestPractices/#ed6a21ed-ad51-4b47-b69c-72de21776f6a (к сожалению, удалено в начале 2012 года)

2 голосов
/ 25 мая 2011

Есть ли возможность масштабировать SQL Azure, когда я достигну лимита соединений на экземпляр?

В дополнение к предложению Enzo sql sharding существует несколько продуктов / функций Microsoft, которые находятся в стадии разработки и помогают масштабировать SQL Azure. Это CTP (в лучшем случае), но они могут предоставить вам некоторые возможности масштабирования, позволяя распределить нагрузку между несколькими базами данных SQL Azure:

0 голосов
/ 25 мая 2011

В дополнении к ответу Джереми посмотрите здесь для получения информации об ограничении соединения SQL Azure.

...