2

分片映射管理器是创建一个连接池来管理所有 sql 连接,还是在每个客户场景一个数据库的情况下为每个唯一的连接字符串/分片/数据库生成一个新池?

连接多个数据库的应用程序将导致池碎片并消耗服务器中的大量内存。微软建议记住这一点,甚至在下面的链接中提出了一个解决方案,但我不确定他们是否在他们的分片映射管理器中使用了这种做法:

https://msdn.microsoft.com/en-us/library/8xx3tyca(v=vs.110).aspx

4

1 回答 1

1

每个唯一的连接字符串都会导致不同的连接池。这意味着您连接到的每个分片都会有一个单独的连接池。未使用https://msdn.microsoft.com/en-us/library/8xx3tyca(v=vs.110).aspx上的解决方案,因为它不适用于 Azure SQL DB(不支持USE语句) .

如果这对您来说是个问题,推荐的解决方案是一种端到端的架构方法,其中应用实例关联到某些分片键范围。这样每个应用程序只会连接到一个分片子集,这将减少碎片。

于 2017-04-21T15:48:50.827 回答