SQL Azure(Web和Business)最多允许180个并发连接,如下所示:
我正在尝试理解并发连接的含义。
假设有一个aspx页面Test.aspx使用SqlConnection对象Select Top 1 * from TestTable
。 SqlReader返回后,连接将关闭。 (我相信ASP.NET仍将使用连接池)。假设此页面同时被500个用户点击。
这是否意味着500个并发连接或1个连接,因为我将使用池连接?
P.S。我也在考虑SQL Federations来扩展数据库层,但如果每个数据库允许最多180个并发连接,并且我查询每个数据库并为应用层上的每个同时用户扇出结果,那么我不知道如何我正在扩展。
答案 0 :(得分:0)
并发连接是从数据库服务器的角度出发的。在.NET中,当返回数据表时,连接将在逻辑上关闭,这意味着连接在连接池中标记为可用,但实际的数据库连接未关闭;它会保持开放一段时间。当从池中重用连接时,.NET会向可用连接发出sp_reset_connetion命令,以便可以重用它。
当池中没有足够的可用连接来满足需求时,将创建与数据库的新连接。因此,为了达到180个并发连接,您需要向数据库发出180个并发请求,因为池需要创建那么多连接。
答案 1 :(得分:0)
关于您的联盟说明,现已弃用。您需要使用新的弹性比例实用程序来创建碎片,在SO上有很多关于它的帖子。
假设此页面同时被500个用户点击。 这是否意味着500个并发连接或1个连接,因为我将使用池连接?
这取决于您的Page正在做什么。让我们说第一个请求命中页面,页面正在进行一个长时间运行的查询,说哪个运行20Sec(假设),在20Sec中,如果另外100个请求命中,反过来这100个请求中的每一个都在进行长时间运行的查询,那么你是确实使用101(包括第一个)与DB的实际连接,而不是重新使用连接池中的任何内容。
实际上,网页不太可能像上面那样做。