linq - Azure SQL 性能优化 - 如何找到运行“最严重违规者”查询的代码?
问题描述
所以我有一个在 Asp.NET MVC Web 应用程序后面运行的 Azure SQL 数据库。
azure 门户已经走了很长一段路,现在我可以在我的 SQL 服务器上做一些性能分析,看看哪些查询是最严重的违规者。
我们可以从中得到一些查询 ID,这甚至可以让我详细了解查询是如何构造的。
其中一些我可以通过查看 SQL 来确定,但是其中一些代码被 linq 库混淆了,以至于我不知道它来自哪里。最严重的罪犯就是其中之一。
有没有办法找出我的哪些代码正在运行这些运行时间很长的 SQL 查询?
解决方案
有没有办法找出我的哪些代码正在运行这些运行时间很长的 SQL 查询?
EF 不会向 SQL Server 发送有关生成查询的代码的任何信息,但您可以使用EF Logging捕获查询,并将它们添加到还包含方法调用的日志中。您应该能够在测试环境中生成包含查询和方法名称的日志。
或者您可以在生产环境中进行日志记录,或者使用Application Insights。
推荐阅读
- python - 使用 Khatri-Rao 产品进行综合排名
- html - 为什么 `position:relative` 在 safari 和 Opera 的 devtools 中计算为 `position: static`?
- python - JSON,Unicode 或二进制响应
- r - 使用 R 对同一列进行交叉制表的最佳方法
- node.js - 如何修复本地隧道的“隧道服务器脱机:请求失败,状态码为 502”错误
- vba - Windows().Activate 似乎不起作用。如何解决“请求的成员不存在”?
- unity3d - 如何在构建管道期间删除场景中的某些对象?
- iframe - 允许在网站中嵌入视频,同时保持 youtube 在网络中被阻止
- php - 如何将自定义用户搜索请求解析为全文搜索?
- cmd - 使用 'SET' 获取表达式的结果