gpt4 book ai didi

Azure SQL 100% DTU 使用率

转载 作者:行者123 更新时间:2023-12-03 05:56:49 26 4
gpt4 key购买 nike

我在 Azure SQL 服务器的可靠性方面遇到了一些问题。

有时会使用子查询执行复杂的查询,如下所示:

SELECT DISTINCT [DeviceName] ,name ,data.[Addr] ,[Signal] FROM (SELECT [DeviceName] ,[Signal] ,MAX([Signal]) OVER (PARTITION BY [Addr]) AS 'MaxSignal',[Timestamp] ,[Addr] ,[PartitionId] ,[EventEnqueuedUtcTime] FROM [dbo].[mytable] WHERE CAST([Timestamp] AS DATETIME) > DATEADD(HOUR,+2,(DATEADD(MINUTE, -10, GETDATE()))) ) data LEFT JOIN mytable ON [dbo].[myreftable].[Addr] = data.[Addr] WHERE [Signal] = [MaxSignal];

几乎是在瞬间完成的,就像我假设的那样,在其他时候只需执行 SELECT COUNT(*) FROM mytable花费了 30 分钟以上,并显示了如下 DTU 使用情况图表:

DTU usage graph

有人知道这个问题的解决办法吗?是我做错了什么吗?或者 Azure 还没有出现?

最佳答案

一分钱一分货。您需要了解系统中哪些资源消耗最多。DTU 没什么,只是对数据库可用的 CPU、IO、内存的限制。

为了解决 DTU 问题,我将按照以下步骤操作..

1.)下面的查询提供了所有资源过去 14 天的资源使用情况..

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

运行上面的查询可以让您了解 CPU 百分比的一致性

2.) 下面的查询让我了解一段时间内的资源使用情况。

SELECT start_time, end_time,   
(SELECT Max(v) FROM (VALUES (avg_cpu_percent), (avg_physical_data_read_percent), (avg_log_write_percent)) AS value(v)) as [avg_DTU_percent]
FROM sys.resource_stats where database_name = ‘<your db name>’ order by end_time desc

现在,我有足够的数据来找出哪个指标更耗费资源,我可以按照正常的方法尝试排除故障..

举例来说,如果我的 CPU 使用率随着时间的推移始终高于 90%,我将收集所有消耗更多 CPU 的查询并尝试对它们进行微调

关于Azure SQL 100% DTU 使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40101719/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com