3

SQL Azure (Web и бизнес) позволяет 180 одновременных соединений в большинстве, как указано здесь:SQL Azure 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 соединение, потому что я буду использовать объединенное соединение?

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

+0

Еще одна вещь, которую следует учитывать, заключается в том, что одновременное попадание страницы на 500 фактически соответствует много раз более актуальным одновременным пользователям. Пользователи не постоянно нажимают на сервер, большую часть времени они ничего не делают. – Craig

ответ

0

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

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

+0

Может ли одно соединение обслуживать несколько человек одновременно или каждый параллельный пользователь, запрашивающий ресурс базы данных, переводит на одно соединение? – Mark13426

+0

Привет, у тебя есть ответ на этот запрос. –

0

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

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

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

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