Azure SQL:S0、S1、S2层和P1、P2、P3层之间的性能基准测试



我们在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设置了这些索引,而不是我自己)。

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

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

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

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

--Srini

我对Azure SQL数据库进行了一系列性能测试。

早在2014年7月,我就进行了一系列相当广泛的测试。请在此处查看结果:https://cbailiss.wordpress.com/2014/07/06/microsoft-azure-sql-database-performance-tests-summary/

我最近的测试包括将普遍可用的v11版本与较新的v12版本(目前正在预览中)进行比较。这显示了一些显著的性能改进:https://cbailiss.wordpress.com/2014/12/17/azure-sql-database-v12-performance-tests-show-significant-performance-increase/

至于为什么您没有看到不同服务层之间的性能差异,我不确定。每个服务层中的可用资源和性能级别之间存在很大差异。在我的所有测试中,高级层提供的性能远高于标准层。您正在运行的测试是什么(即SQL是什么,表结构、数据量等是什么?),结果是什么(例如所花费的时间)?

最新更新