SQL Azure 180 одновременных подключений

SQL Azure (Web и Business) допускает не более 180 одновременных подключений, как указано здесь:

http://blogs.technet.com/b/dataplatforminsider/archive/2013/07/23/premium-preview-for-windows-azure-sql-database-now-live.aspx

Я пытаюсь понять, что подразумевается под параллельными соединениями.

Предположим, что есть страница aspx Test.aspx, которая использует объект SqlConnection для Select Top 1 * from TestTable, После возврата SqlReader соединение закрывается. (Я считаю, что ASP.NET все еще будет использовать пул соединений). Предположим, что эту страницу одновременно посещают 500 пользователей.

Означает ли это 500 одновременных соединений или 1 соединение, потому что я буду использовать пул соединений?

PS Я также смотрю на федерации SQL для масштабирования уровня базы данных, но если каждая БД допускает до 180 одновременных подключений, и я запрашиваю каждую БД и разглашаю результаты для каждого одновременного пользователя на прикладном уровне, то я не вижу как я масштабируюсь

2 ответа

Что касается вашей заметки Федерации, она устарела. Вам нужно будет использовать новую Elastic Scale Utility для создания осколков, об этом в SO много.

Предположим, что эту страницу одновременно посещают 500 пользователей. Означает ли это 500 одновременных соединений или 1 соединение, потому что я буду использовать пул соединений?

Это зависит от того, что делает ваша страница. Допустим, первый запрос попадает на страницу, и страница выполняет длительный запрос, скажем, который выполняется для 20Sec (гипотетически), то есть, если 20 других запросов и, в свою очередь, каждый из этих 100 запросов выполняет длительный запрос, то вы действительно, используя 101 (включая первый) фактические соединения с БД и не используя ничего из пула соединений.

Практически очень маловероятно, что веб-страница будет делать что-то вроде выше.

Параллельное соединение происходит с точки зрения сервера базы данных. В.NET, когда возвращается ваша таблица данных, соединение логически закрывается, то есть соединение помечается как доступное в пуле соединений, но фактическое соединение с базой данных не закрывается; он остается открытым в течение некоторого времени. Когда соединение повторно используется из пула, .NET выдает команду sp_reset_connetion для доступного соединения, чтобы его можно было повторно использовать.

Новое соединение с базой данных создается, когда в пуле недостаточно соединений для удовлетворения спроса. Таким образом, чтобы достичь 180 одновременных подключений, вам нужно будет выполнить 180 одновременных запросов к базе данных, поскольку пулу потребуется создать такое количество подключений.

Другие вопросы по тегам