首页 > 解决方案 > Azure SQL 性能优化 - 如何找到运行“最严重违规者”查询的代码?

问题描述

所以我有一个在 Asp.NET MVC Web 应用程序后面运行的 Azure SQL 数据库。

azure 门户已经走了很长一段路,现在我可以在我的 SQL 服务器上做一些性能分析,看看哪些查询是最严重的违规者。

我们可以看到这里有一些运行时间很长的查询。 哇好长

我们可以从中得到一些查询 ID,这甚至可以让我详细了解查询是如何构造的。

其中一些我可以通过查看 SQL 来确定,但是其中一些代码被 linq 库混淆了,以至于我不知道它来自哪里。最严重的罪犯就是其中之一。

有没有办法找出我的哪些代码正在运行这些运行时间很长的 SQL 查询?

标签: linqasp.net-mvc-5azure-sql-databasesqlperformance

解决方案


有没有办法找出我的哪些代码正在运行这些运行时间很长的 SQL 查询?

EF 不会向 SQL Server 发送有关生成查询的代码的任何信息,但您可以使用EF Logging捕获查询,并将它们添加到还包含方法调用的日志中。您应该能够在测试环境中生成包含查询和方法名称的日志。

或者您可以在生产环境中进行日志记录,或者使用Application Insights


推荐阅读