每个租户托管建议的数据库(高可扩展性)

时间:2018-02-27 14:52:19

标签: .net entity-framework-6 azure-sql-database multi-tenant azure-elastic-scale

我们目前正在制作一个包含每个租户逻辑数据库的Web应用程序。我们当前的数据库设置全部托管在一个具有一个实例免费SQL Express版本的VM上。

所有数据库都是在服务器端动态创建的,并且每次经理注册时都会添加到同一个实例中。

但是,我预计在不久的将来我们可能遇到高可扩展性的问题,考虑到新SQL版本的成本,与多个数据库的一个实例相关的性能问题,未来的开发和管理。

我正在考虑从Azure开启弹性池结构,因为我们现在没有很多客户端,但我真的不知道它是否有利于价格和可扩展性一开始。

为了拥有超过100个客户端,用弹性池改变我的结构是否有益?

谢谢!

1 个答案:

答案 0 :(得分:2)

弹性池非常适合具有特定使用模式的大量数据库。对于给定的数据库,此模式的特点是平均利用率低,利用率峰值相对较少。

您可以添加到池中的数据库越多,您的节省就越多。

但是,重要的是评估您的特定数据库集合是否可以从池中受益。您需要检查数据库的利用率模式,并注意峰值DTU和理想时间。

池的价格是池eDTU的函数。虽然池的eDTU单价比单个数据库的DTU单价高1.5倍,但池eDTU可以由许多数据库共享,并且需要的eDTU总数更少。

如果单个数据库的性能级别的DTU总和超过池所需的eDT的1.5倍,则弹性池更具成本效益。有关可用尺寸,请参阅eDTU and storage limits for elastic pools and elastic databases

要确定最大并发峰值数据库数量,我建议您仔细阅读 - Maximum number of concurrently peaking databases