SQL Azure 180并发连接

时间:2014-01-15 06:56:34

标签: asp.net database-connection azure-sql-database sql-azure-federations

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个连接,因为我将使用池连接?

P.S。我也在考虑SQL Federations来扩展数据库层,但如果每个数据库允许最多180个并发连接,并且我查询每个数据库并为应用层上的每个同时用户扇出结果,那么我不知道如何我正在扩展。

2 个答案:

答案 0 :(得分:0)

并发连接是从数据库服务器的角度出发的。在.NET中,当返回数据表时,连接将在逻辑上关闭,这意味着连接在连接池中标记为可用,但实际的数据库连接未关闭;它会保持开放一段时间。当从池中重用连接时,.NET会向可用连接发出sp_reset_connetion命令,以便可以重用它。

当池中没有足够的可用连接来满足需求时,将创建与数据库的新连接。因此,为了达到180个并发连接,您需要向数据库发出180个并发请求,因为池需要创建那么多连接。

答案 1 :(得分:0)

关于您的联盟说明,现已弃用。您需要使用新的弹性比例实用程序来创建碎片,在SO上有很多关于它的帖子。

  

假设此页面同时被500个用户点击。   这是否意味着500个并发连接或1个连接,因为我将使用池连接?

这取决于您的Page正在做什么。让我们说第一个请求命中页面,页面正在进行一个长时间运行的查询,说哪个运行20Sec(假设),在20Sec中,如果另外100个请求命中,反过来这100个请求中的每一个都在进行长时间运行的查询,那么你是确实使用101(包括第一个)与DB的实际连接,而不是重新使用连接池中的任何内容。

实际上,网页不太可能像上面那样做。