[英]Find out which query increasing DTU in SQL Azure
我在我的應用程序中使用SQL Azure SQL Server。 我的應用程序所在的數據庫層一直運行到最近,avg DTU的使用受到控制。 但是在高峰時段,DTU的峰值持續達到100%。 升級到下一層是一個選項,但首先我想弄清楚哪個查詢對此負責。 這可以在Azure中找到,哪個查詢使DTU跳轉到100%?
簡單地說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使用率的查詢並調整它們。
自20171701更新:
SQLAzure引入了Query Performance insight,它顯示了Query使用的DTU。您必須啟用Querystore才能使其工作。
從上面的屏幕截圖中可以看出,您可以看到每個查詢的確切DTU用法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.