我们使用的是SQL Azure,我们的数据库位于弹性池中。它具有以下参数:
- 整个池允许的 DTU 数为 400。
- 每个数据库允许的最大 DTU 数为 100。
- 池中的数据库数为 50
简单地说,50 个数据库中的 4 个可以同时处于峰值负载。
问题是 - 如果 4 个数据库处于峰值负载,第 5 个数据库也达到峰值负载,会发生什么情况?
第 5 个是获得 0 个 DTU(因此查询将超时(,还是弹性池会更有效地分发 DTU(每个数据库获得 400/5 = 80 个 DTU(?
据我所知,您估计可以达到峰值限制的数据库数量不正确。可以同时达到其 eDTU 限制的数据库数为数据库的 2/3(或 67%(。但这是考虑到您估计池所需的 eDTU,如下所示:
-
MAX( [数据库总数 X 每个数据库的平均 DTU 利用率],[并发峰值数据库数 X 每个数据库的峰值 DTU 利用率(]
-
还应通过添加池中所有数据库所需的字节数来估计池所需的存储空间。然后确定提供此存储量的 eDTU 池大小。
-
最后,您应该找到大于前 2 个 eDTU 计算中最大大小的最小 eDTU 池大小
如果用这个数学来计算 eDTU 池大小,不仅 4 个数据库,而且 2/3 的数据库可以达到每个数据库的 eDTU 限制。