CPU / DTU在Azure SQL数据库上达到最大值,但顶级查询不到1%,数据库只有几MB



我刚刚启动了一个Azure SQL数据库,DTU和CPU使用率表现异常。 数据库每分钟只接收大约 30 个请求,CPU/DTU 将在几个小时内极低,然后跳到 100% 并保持在那里(触发此请求的请求数量不会增加(。 当我单击以查看排名靠前的查询时,它们都没有超过 1% 的 CPU 使用率。 我从 5 个 DTU 计划开始,昨天升级到 20 个 DTU,并且发生了相同的行为。 知道还有什么可能导致DTU/CPU达到最大值吗? 见下图:

https://i.stack.imgur.com/JSlC2.png

https://i.stack.imgur.com/JIInz.png

提前感谢您的任何建议!

编辑:我越来越近了,我在错误日志中找到了这些重复的条目。 (每秒约 8 - 10 次(

"传入的请求有太多参数。服务器最多支持 2100 个参数。减少参数数量并重新发送请求。

问题是,查询数据库的应用服务只执行简单的选择、更新和插入...它们都没有使用任何复杂的 WHERE IN 语句。 此外,每个查询都包装在 try/catch 块中,我从未见过这样的异常。

这些大型查询可能来自哪里?

您只看到 DTU 图的 CPU 组件,"数据 IO"和"日志 IO"组件呢?查看 5 个部分中的前 3 个查询,如果您找到以"SELECT Statman ..."开头的查询,请告诉我。如果看到,则自动更新统计信息过程正在创建这些 DTU 峰值。

我建议安装sp_whoisactive脚本,以便您可以更轻松地查看正在发生的事情:

http://whoisactive.com/

最新更新