Azure SQL:S0、S1、S2 层与 P1、P2、P3 层之间的性能基准?

Dav*_*son 6 sql-server azure azure-sql-database

我们在 Auzre 云中拥有一些处于较旧定价层的旧数据库(“商业”- 在基本/标准/高级层可用之前)。

我们正在寻求向新结构的过渡(并利用新功能) - 因此进行了一些测试来了解我们将通过定价结构获得多少性能提升。

Azure SQL 版本以数据库吞吐量单位 (DTU) 来衡量,Azure 将这些单位直接归因于性能的提高: DTU 代表数据库引擎的功能,作为 CPU、内存以及读写速率的混合度量。此衡量标准可帮助客户评估基本、标准和高级(基本、S1、S2、P1、P2 和 P3)中可用的六个 SQL 数据库性能级别的相对能力。请访问 MSDN 上的性能指南以获取更多信息。

在没有发现 S0 和 S2 数据库之间有任何差异之后,我们建立了 P3 版本来测试,作为针对 S0 的基准。我们惊讶地发现对 S0 和 P3 Azure SQL 数据库运行相当复杂的查询之间完全没有性能差异。

这两个实例都是根据原始业务层 Azure SQL 文件的备份文件构建的(这可能是一个问题吗?)

我不知所措 - 正如我预期的那样,P3 数据库(800 个 DTU 单位)将击败 S0 数据库(10 个 DTU 单位)。两者的表现几乎相同。两者都使用相同的执行计划,并且都具有适当的索引(DBA 设置了这些 - 不是我自己设置的)。

关于为什么我们没有看到这些配置的差异有什么见解吗?

还有其他人有任何在这些层中提高性能或性能差异的例子吗?

小智 3

您的查询是否有可能在 S0 数据库本身提供的资源限制内运行良好,因此更高级别的数据库无法为您提供任何进一步的帮助?监视此情况的最佳方法是在运行查询时测量数据库的 DTU 利用率百分比。如果 S0 的 DTU 利用率 < 100%,则您可能无法从该查询的更高级别的数据库版本中获得更多好处。

这是一个博客,提供有关监视资源使用情况和适当调整数据库性能级别的更多信息。http://azure.microsoft.com/blog/2014/09/11/azure-sql-database-introduces-new-near-real-time-performance-metrics/

——斯里尼