Azure SQL数据库“DTU百分比”度量标准

使用新的Azure SQL数据库层结构 ,监视数据库“DTU”用法似乎很重要,以了解是升级还是降级到其他层。

在阅读Azure SQL数据库服务层和性能级别时 ,只会谈到使用CPU,数据和日志百分比的使用情况。

但是,当我添加新的度量标准时,我也有一个DTU百分比选项:

添加数据库指标

我在网上找不到任何关于这个。 这基本上是其他DTU相关指标的摘要?

DTU是服务层性能的度量单位,是几个数据库特征的总结。 每个服务层都有一定数量的DTU分配给它,作为比较一层与另一层性能水平的简单方法。

数据库吞吐量单元(DTU): DTU提供了一种方式来描述基本,标准和高级数据库性能级别的相对容量。 DTU基于CPU,内存,读取和写入的混合度量。 随着DTU的增加,性能水平提供的功率也会增加。 例如,具有5个DTU的性能等级比具有1个DTU的性能等级高5倍。 最大DTU配额适用于每台服务器。

DTU限额适用于服务器,而不是单个数据库,每个服务器最多有1600个DTU。 DTU%是特定数据库使用的单位的百分比,看起来这个数字可以超过服务层(我假定服务器的限制)的DTU等级的100%。 此百分比数字旨在帮助您select适当的服务层。

从本公告底部开始:

例如,如果您的DTU消耗显示80%的值,则表明它正在以S2数据库将具有的限制的80%的比率消耗DTU。 如果您在此视图中看到的值大于100%,则意味着您需要大于S2的性能级别。

举一个例子,假设你看到一个百分比值为300%。 这告诉你,你使用的资源比S2中多出三倍。 要确定合理的起始大小,请将S2(50个DTU)中可用的DTU与下一个更高大小(P1 = 100个DTU,或者S2的200%,P2 = 200个DTU或S2的400%)进行比较。 因为你是S2的300%,所以你想从P2开始并重新testing。

仍然不够酷评论,但对于@ vladislav的评论原来的文章是相当古老的。 这里是关于DTU的更新文件,这将有助于回答OP的问题。

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-what-is-a-dtu

在这个文档中,这个DTU百分比是由这个查询决定的:

SELECT end_time, (SELECT Max(v) FROM (VALUES (avg_cpu_percent), (avg_data_io_percent), (avg_log_write_percent)) AS value(v)) AS [avg_DTU_percent] FROM sys.dm_db_resource_stats; 

看起来像avg_cpu_percentavg_data_io_percentavg_log_write_percent

参考:

https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-db-resource-stats-azure-sql-database