SQL Azure:远低于DTU限额却出现查询性能劣化问题求助
低DTU使用率下SQL Azure查询性能骤降问题排查
我有一个部署在Azure App Service中的Web应用,后端连接标准层50 DTU的SQL Azure数据库。应用基于ASP.NET Core 7开发,使用EF Core 7作为ORM框架。网站流量波动极大,流量高峰时所有数据库查询都会变得异常缓慢,但高峰期间DTU使用率从未超过限额的6%。

即便是非常简单的查询也出现卡顿:
- 流量高峰前,同一查询仅耗时10ms:
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使用率远低于限额却出现这种情况。查阅的资料大多针对DTU使用率高的场景,找不到对应解决方案,希望有人能帮忙分析:在远低于DTU限额的情况下,哪种资源瓶颈会导致如此严重的性能下降?
补充其他监控数据:

内容的提问来源于stack exchange,提问作者BenjiFB
相关产品推荐
相关产品推荐

