找出在SQL Azure中增加DTU的查询

时间:2016-07-17 14:08:54

标签: sql-server performance azure azure-sql-database database-performance

我正在为我的应用程序使用SQL Azure SQL Server。我的应用程序所在的数据库层一直运行到最近,avg DTU的使用受到控制。但是在高峰时段,DTU的峰值持续达到100%。升级到下一层是一个选项,但首先我想弄清楚哪个查询对此负责。这是否可以在Azure中找到,哪个查询使DTU跳转到100%?

1 个答案:

答案 0 :(得分:5)

简单地说DTU是CPU,IO,内存的混合物,你将根据你的服务等级得到它。如果有一个列显示查询使用了多少DTU与总DTU相比,那将是非常好的。

我会分两步处理这个问题。

<强>步骤1:
找出哪个指标始终超过90%

- 此DMV每隔15秒存储DTU使用量,最多14天..

SELECT  
    AVG(avg_cpu_percent) AS 'Average CPU Utilization In Percent', 
    MAX(avg_cpu_percent) AS 'Maximum CPU Utilization In Percent', 
    AVG(avg_data_io_percent) AS 'Average Data IO In Percent', 
    MAX(avg_data_io_percent) AS 'Maximum Data IO In Percent', 
    AVG(avg_log_write_percent) AS 'Average Log Write Utilization In Percent', 
    MAX(avg_log_write_percent) AS 'Maximum Log Write Utilization In Percent', 
    AVG(avg_memory_usage_percent) AS 'Average Memory Usage In Percent', 
    MAX(avg_memory_usage_percent) AS 'Maximum Memory Usage In Percent' 
FROM sys.dm_db_resource_stats; 

<强>步骤2:
如果您发现任何上述指标始终超过90%,则可以调整这些查询..

例如,如果cpu超过90%,您可以开始跟踪具有高CPU使用率的查询并对其进行调整。

2017年7月1日更新:
SQLAzure引入了Query Performance insight,它显示了Query使用的DTU。您必须启用Querystore才能使用它。

enter image description here

从上面的屏幕截图中可以看出,您可以看到每个查询的确切DTU用法