使用"连接池"与否

时间:2018-06-12 13:29:10

标签: c# sql-server azure-sql-database azure-sql-server

背景

我正在使用Azure-Sql-Server。托管我的数据库,我在其上使用Entity-Framework(C#)。我使用Standart S3层。此定价层限制为200个并发连接到DB。

我的系统在微服务架构中工作。我的每个服务都与DB建立了开放连接。

这是我的连接字符串的样子

  

元数据= RES:///Model1.csdl | RES:///Model1.ssdl | RES://*/Model1.msl;提供商= System.Data.SqlClient的;提供者   连接字符串="数据源= mydb.database.windows.net;初始   目录=生产;持久安全信息=真;用户   ID = user @ my; Password = mypass; Pooling = true; Max Pool Size = 2; Enlist = false;"

我的场景

我还在SQL Server documentation上读到默认情况下池已启用且MaxPoolSize为100(默认值)。

现在,我是否想要使用连接池是否聪明?因为我的应用程序在群集中包含50台机器。即使我为每台机器提供了X4连接,我也将通过AzureSql(在我的定价层S3中)达到MaxAllowedConnection。

扩展数据库不是一种选择,因为我已经为这个数据库付了很多钱。大约300美元。我检查了一下,发现为了获得400个允许的连接,我必须为数据库支付1200美元。这不是一个选择。

我的应用程序是非db aggresive。只需进行少量计算(CPU)并插入一些行。

问题:

  1. 我真的需要使用连接池吗?如何知道这是多余的(更改后)?
  2. 默认情况下,使用此大量MaxConnection(100)启用连接池是多么合理?从理论上讲,即使用3台机器支付300美元,它也不会起作用。

0 个答案:

没有答案