3

SQL Azure(Web 和商业)最多允许 180 个并发连接,如下所示:

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

我试图理解并发连接的含义。

假设有一个使用 SqlConnection 对象的 aspx 页面 Test.aspx Select Top 1 * from TestTable。SqlReader 返回后,连接关闭。(我相信 ASP.NET 仍将使用连接池)。假设该页面同时被 500 个用户点击。

这是否意味着 500 个并发连接或 1 个连接,因为我将使用池连接?

PS 我也在寻找 SQL Federations 来扩展数据库层,但是如果每个 DB 允许多达 180 个并发连接并且我查询每个 DB 并为应用程序层上的每个同时用户扇出结果,那么我看不到我是如何扩大规模的。

4

2 回答 2

0

并发连接是从数据库服务器的角度来看的。在.NET中,当你的数据表返回时,逻辑上连接是关闭的,也就是说连接在连接池中被标记为可用,但实际的数据库连接并没有关闭;它保持开放一段时间。当从池中重用一个连接时,.NET 会向可用连接发出一个 sp_reset_connetion 命令,以便它可以被重用。

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

于 2014-02-16T04:13:14.370 回答
0

关于您的联邦注释,它现在已被弃用。您需要使用新的 Elastic Sc​​ale Utility 来创建分片,SO 上有很多关于它的帖子。

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

这取决于您的主页在做什么。假设第一个请求命中页面并且页面正在执行长时间运行的查询,假设运行 20 秒(假设),在 20 秒内,如果另外 100 个请求命中,而这 100 个请求中的每一个都在执行长时间运行的查询,那么您就是确实使用了 101 个(包括第一个)与数据库的实际连接,并且没有重新使用连接池中的任何内容。

实际上,网页不太可能执行上述操作。

于 2015-05-27T12:19:14.750 回答