Это помогает, если вы проверяете каждое потребление ресурсов индивидуально, как показано в запросе ниже. Вы можете настроить 80 в качестве порога для запроса, как вы хотите.
SELECT
(COUNT(end_time) - SUM(CASE WHEN avg_cpu_percent > 80 THEN 1 ELSE 0 END) * 1.0) / COUNT(end_time) AS 'CPU Fit Percent'
,(COUNT(end_time) - SUM(CASE WHEN avg_log_write_percent > 80 THEN 1 ELSE 0 END) * 1.0) / COUNT(end_time) AS 'Log Write Fit Percent'
,(COUNT(end_time) - SUM(CASE WHEN avg_data_io_percent > 80 THEN 1 ELSE 0 END) * 1.0) / COUNT(end_time) AS 'Physical Data Read Fit Percent'
FROM sys.dm_db_resource_stats
Например, если вы видите, что значение avg_log_write_percent близко или равно 100% для вашей базы данных SQL Azure, то регулирование влияет на вашу базу данных, и не имеет значения, что говорит процессор или другие отдельные меры. В этой ситуации ваша база данных SQL находится под высокой нагрузкой, и вы не хотите добавлять дополнительную нагрузку.
В приведенном ниже запросе я добавил предельное значение DTU для текущего уровня вашей базы данных, чтобы вы могли сравнить среднее предельное значение DTU и среднее потребление DTU за последние 5 минут и решить, хотите ли вы добавить дополнительную рабочую нагрузку (больше инструкции по выполнению) к текущей загрузке вашей базы данных.
DECLARE @s datetime;
DECLARE @e datetime;
SET @s= DateAdd(minute,-5,GetUTCDate());
SET @e= GETUTCDATE();
SELECT
end_time AS [EndTime]
, (SELECT Max(v) FROM (VALUES (avg_cpu_percent), (avg_data_io_percent), (avg_log_write_percent)) AS value(v)) AS [AvgDTU_Percent]
, ((dtu_limit)*((SELECT Max(v) FROM (VALUES (avg_cpu_percent), (avg_data_io_percent), (avg_log_write_percent)) AS value(v))/100.00)) AS [AvgDTUsUsed]
, dtu_limit AS [DTULimit]
FROM sys.dm_db_resource_stats
WHERE end_time BETWEEN @s AND @e