gpt4 book ai didi

azure - SQL Azure : Bad query performance despite being well under DTU limit?

转载 作者:行者123 更新时间:2023-12-03 06:07:29 25 4
gpt4 key购买 nike

我有一个在 Azure 应用服务中运行的 Web 应用程序,该应用程序连接到标准层中 50 DTU 的 SQL Azure 数据库。我在 ASP.NET Core 7 应用程序中使用 EF Core 7。我网站的访问量非常高。我注意到,当流量激增时,数据库查询全面变得非常慢。作为上下文:我表明,在本次浏览期间,我仅使用了 50 DTU 限制的 6%。

Image showing a max of 6% DTU during traffic peak

尽管如此,即使是看起来非常简单的查询也开始爬行。我有几个查询,但举一个具体的例子:这是在流量高峰之前触发的,并且执行时间非常快,为 10 毫秒。

Executed DbCommand (10ms) [Parameters=[@__userId_0='?' (DbType = Int32)], CommandType='Text', CommandTimeout='30']
SELECT [a0].[Name]
FROM [AspNetUserRoles] AS [a]
INNER JOIN [AspNetRoles] AS [a0] ON [a].[RoleId] = [a0].[Id]
WHERE [a].[UserId] = @__userId_0

然后,流量高峰两分钟后,再次执行相同的查询,耗时 18 秒:

Executed DbCommand (18,088ms) [Parameters=[@__userId_0='?' (DbType = Int32)], CommandType='Text', CommandTimeout='30']
SELECT [a0].[Name]
FROM [AspNetUserRoles] AS [a]
INNER JOIN [AspNetRoles] AS [a0] ON [a].[RoleId] = [a0].[Id]
WHERE [a].[UserId] = @__userId_0

(这是最慢的实例之一 - 大多数都在 3 秒左右,仍然慢得奇怪。)我怀疑我的数据库动力不足。但我不清楚如果是这种情况,为什么我不会高于分配的 DTU 的 6%。

我发现的很多研究都是针对 DTU 消耗较高的情况,但事实并非如此。我正在寻求帮助,以了解如果我仍远低于 DTU 限制,哪种类型的资源匮乏可能会导致性能急剧下降。

其他统计数据: Image showing 6% max CPU use during peak Image showing 9% max workers percentage

谢谢...

最佳答案

检查 SQL 性能的最佳方法是访问 Azure SQL 数据库的“诊断和解决问题”部分并深入了解性能问题:-

可以引用我的SO thread回答检查和提高 Azure SQL 性能的详细步骤。

选择您的 Azure SQL 数据库 > 诊断和解决问题 > 性能和查询执行 > 索引维护和统计:-

enter image description here

enter image description here

我选择了索引维护和统计并收到一个查询,以减少长时间运行的查询输出:-

enter image description here

enter image description here

您还可以使用智能性能来调整您的查询,请参阅以下内容:-

enter image description here

您还可以使用 Azure Advisor 检查是否使用了正确的 DTU 大小以使 SQL 高效执行,如下所示:-

enter image description here

在您的 Azure Web 应用程序中,尝试检查“诊断和解决问题”>“可用性和性能”>“Web 应用程序缓慢”以了解更多问题:-

enter image description here

关于azure - SQL Azure : Bad query performance despite being well under DTU limit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77176703/

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