3

SQL azure数据库上可以建立的并发连接数是否有任何限制。这是我面临的情况:我有一个托管在 Windows Server 2008 R2 虚拟机上的网站,许多用户将连接到该虚拟机,并且数据库是在 SQL azure 中创建的。我们观察到,当并发连接过多时,会出现连接丢失,这意味着使用正确的用户名和密码连接到网站的任何进一步连接都无法登录。任何用户都无法登录网站至少 40 分钟,之后相同的用户名和密码成功将用户登录到网站。

是这个限制问题还是当多个用户尝试登录并执行多个耗时的活动时实际发生的情况。我可以采取什么步骤来解决这个问题。多个用户打开的会话是否会导致此错误。您能告诉我确切的事情以及为避免这种情况而需要采取的步骤吗?

4

1 回答 1

6

数据库上有 180 个连接的硬性限制。例如,如果您在开始达到此限制时也有一个重试框架,您会看到情况变得更糟,因为它会尝试重试创建更多与 SQL Azure 的连接,从而增加您的问题。

您将开始看到如下错误:

异常类型:System.Data.SqlClient.SqlException 资源ID:1.数据库的请求限制为180,已达到。请参阅“ http://go.microsoft.com/fwlink/?LinkId=267637 ”以获得帮助。

http://social.technet.microsoft.com/wiki/contents/articles/1541.windows-azure-sql-database-connection-management.aspx#Throttling_Limits

最快的解决方法是尝试缓存大量内容,并尝试在连接字符串上使用最大池限制,如果您前面有大量计算。(虽然听起来你没有)

Azure 中的缓存

解决此问题的另一种方法是如果您无法通过缓存降低连接限制,则对数据库进行分片,我建议您使用自定义过程而不是使用联合来获得更多控制。

要了解您没有连接泄漏并查看发生了什么,我会查看此资源

hths,

詹姆士

于 2013-05-20T15:19:53.647 回答