SQL Azure 180 одновременных подключений
SQL Azure (Web и Business) допускает не более 180 одновременных подключений, как указано здесь:
Я пытаюсь понять, что подразумевается под параллельными соединениями.
Предположим, что есть страница 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 одновременных запросов к базе данных, поскольку пулу потребуется создать такое количество подключений.