SqlException执行超时执行轻量级查询时过期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SqlException执行超时执行轻量级查询时过期相关的知识,希望对你有一定的参考价值。
我看到一个非常奇怪的超时异常似乎是一个非常轻量级的查询,我不知道为什么。
查询看起来像这样
var locationId = 9;
var quantities = db.OrderDetails
.Where(d => d.ANullableDate == null
&& d.Order.LocationId == locationId
&& d.AnotherNullabelDate == null
&& d.ABooleanValue)
.Select(d => new { d.SkuId, d.Quantity })
.GroupBy(d => d.SkuId)
.ToList()
.ToDictionary(grp => grp.Key, grp => grp.Sum(x => x.Quantity));
关于这个的几点说明:
- 当locationId不是9时,这很好
- 昨天工作得很好。
- 这在我的机器上运行正常。
- 当我配置它以在天蓝色中使用DB时,它在我的机器上运行正常。
- 如果我从Azure门户中提取与此查询相关的原始SQL并直接针对Azure DB运行它,它可以正常工作。
- 此查询非常简单,并且与未发生故障的其他查询相比,使用的数据要少得多。
- 我通过可以找到“https://docs.microsoft.com/en-us/azure/sql-database/sql-database-connectivity-issues”的查询搜索问题事件,并且在问题发生的时候没有出现任何问题。
- 如果你对
Select
电话和ToList
电话感到好奇,那么这些是我在听到这个问题后尝试的东西(它们没有用)。
我完全不知道这可能是什么问题。我应该寻找什么?
更新:
它现在正在运作。我在它再次开始工作之前做的最后一件事是将数据库从S4降级到S3(我这样做是因为S4配置在公共预览中)。
将其缩放到S4并没有导致问题再次开始发生,因此我无法真正假设缩放是修复它的原因。我仍然不知道出了什么问题。
答案
该交易可能会因未完成的交易而被阻止。当您向上/向下扩展层时,将回滚打开的事务。现在记录没有锁定数据修改。
以上是关于SqlException执行超时执行轻量级查询时过期的主要内容,如果未能解决你的问题,请参考以下文章
NHibernate - “GenericADOException:无法执行查询”
System.Data.SqlClient.SqlException(等待操作超时)仅在调试时