我一直在分析在Azure SQL上运行的一个数据库,它的性能非常糟糕。它在高级版中有1750个可用的DTU,有时仍然可以达到DTU的最大值。
我已经通过存储过程识别出了各种查询和可怕的数据访问模式,从而减轻了负载。但是,在下面的图像中,DTU和CPU使用率之间仍存在巨大的差异,我在Azure SQL中看到的任何其他“查询性能洞察”的图像都显示出DTU线与CPU使用率基本对齐。 DTU(红色)每个查询的CPU使用情况 查看位于其上方的C#应用程序,对于使用该应用程序的每个用户,它都会创建一个SQL用户,并在连接字符串中使用该用户来访问DB。这意味着未使用连接池,导致在SQL Azure DB上拥有大量活动用户/会话。这可能是为什么DTU使用率如此之高的唯一原因吗?
或者我可能错过了在Azure门户中不可见的IO相关内容吗?
谢谢 尼尔
编辑:添加会话和工作人员图像!
我已经通过存储过程识别出了各种查询和可怕的数据访问模式,从而减轻了负载。但是,在下面的图像中,DTU和CPU使用率之间仍存在巨大的差异,我在Azure SQL中看到的任何其他“查询性能洞察”的图像都显示出DTU线与CPU使用率基本对齐。 DTU(红色)每个查询的CPU使用情况 查看位于其上方的C#应用程序,对于使用该应用程序的每个用户,它都会创建一个SQL用户,并在连接字符串中使用该用户来访问DB。这意味着未使用连接池,导致在SQL Azure DB上拥有大量活动用户/会话。这可能是为什么DTU使用率如此之高的唯一原因吗?
或者我可能错过了在Azure门户中不可见的IO相关内容吗?
谢谢 尼尔
编辑:添加会话和工作人员图像!
基于这一点,我现在不太确定...会话百分比是什么?就像它是10%,但是10%是什么?允许的最大值吗?
编辑2:添加更多指标:
我认为紫色尖峰是重新索引,所以可以忽略它!