SqlException执行超时执行轻量级查询

时间:2018-03-02 17:55:49

标签: c# entity-framework-6 azure-sql-database

我看到一个非常奇怪的超时异常似乎是一个非常轻量级的查询,我不知道为什么。

查询看起来像这样

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
  • 时,此方法正常
  • 昨天工作正常。
  • 这在我的机器上运行正常。
  • 当我将其配置为使用天蓝色的数据库时,它在我的机器上运行正常。
  • 如果我从Azure门户中提取与此查询相关的原始SQL并直接针对Azure DB运行它,则可以正常工作。
  • 此查询非常简单,并且使用的数据明显少于未失败的其他查询。
  • 我通过可以找到“https://docs.microsoft.com/en-us/azure/sql-database/sql-database-connectivity-issues”的查询搜索问题事件,并且在问题发生的时候没有出现任何问题。
  • 如果您对Select来电和ToList来电感到好奇,那么这些是我在听到此问题后尝试的内容(它们不起作用)。

我完全不知道这可能是什么问题。我应该寻找什么?

更新:

现在正在运作。我在它再次开始工作之前做的最后一件事是将数据库从S4降级到S3(我这样做是因为S4配置是公开预览的。)

将其缩放回S4并没有导致问题再次开始发生,因此我无法真正假设缩放是修复它的原因。我仍然不知道出了什么问题。

1 个答案:

答案 0 :(得分:0)

该交易可能会因未完成的交易而被阻止。当您向上/向下扩展层时,将回滚打开的事务。现在记录没有锁定数据修改。