sql - LINQ to Entities(等待操作超时)
问题描述
我想在这里找到一个查询的帮助。我在我的 ASP.NET MVC 项目中使用实体框架和 SQL DB。有成型机的记录。每条记录都有类似“156812 NameOfParameter”的名称,其中数字是成型机生产编号,名称是参数名称、值和日期。成型机的每个循环都会创建一组具有相同日期的记录。但是记录组中不一定有所有参数。这意味着缺少参数的值与具有较旧日期和名称的第一条记录的值相同,例如“%NameOfParameter”
我的目标是列出成型机周期。这意味着具有相同日期和时间的参数列表(没有毫秒数)并填写所有缺失值。
特定成型机的数据库中的数据集和日期从 -> 到
var lisData = GetSet().Where(t => t.Name.Contains(cisloLisu));
if (request.DateFrom.HasValue && request.DateTo.HasValue)
lisData= lisData.Where(t => t.SampleDateTime >= request.DateFrom.Value && t.SampleDateTime <= request.DateTo.Value);
1)按日期和时间分组(无milisecunde)
var set =
from tag in lisData
group tag by DbFunctions.CreateDateTime(
tag.SampleDateTime.Year,
tag.SampleDateTime.Month,
tag.SampleDateTime.Day,
tag.SampleDateTime.Hour,
tag.SampleDateTime.Minute,
tag.SampleDateTime.Second)
into zdvih
select zdvih;
现在我有IQueryble<IGrouping<DateTime?, HistDataView>>
对象了。
2)从这个对象我需要做成型周期列表
var set2 =
from zdvih in set
let wz =
zdvih.FirstOrDefault(t => t.Name.Contains("Cislo nastroje")) ??
lisData.FirstOrDefault(t => t.SampleDateTime < zdvih.Key && t.Name.Contains("Cislo nastroje"))
let snr =
zdvih.FirstOrDefault(t => t.Name.Contains("Cislo dilu")) ??
lisData.FirstOrDefault(t => t.SampleDateTime < zdvih.Key && t.Name.Contains("Cislo dilu"))
select new ZdvihView()
{
Datum = zdvih.Key,
CisloNastroje = wz.Value,
CisloDilu = snr.Value,
};
问题是我不知道为什么要花这么多时间。即使我只看最后一小时。我几乎总是收到错误“等待操作超时”
Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
感谢您的每一个帮助
解决方案
使用默认 SQL Server 探查器来观察已翻译和执行的 TSQL 查询。翻译后的 TSQL 查询可能需要太多时间来执行。如果不使用 Linq Insight 之类的 linq profiler 来分析您的查询并找到瓶颈。
推荐阅读
- angular - 作为@Input 传递给子级的值的双向绑定
- java - 尝试在回收站视图中显示用户信息 - Firebase
- python - 如何根据生成的随机问题“选择”正确的用户答案
- java - 从类扩展时,何时在方法中使用 super 或 override?
- python - 如何使用 scikit-learn 可视化两个类的边界/决策函数
- javascript - Microsoft Translate Voice 请求时限制 200-400 字
- python - 在 Visual Studio 代码中配置输出屏幕
- python-2.7 - 使用 selenium 和 python 在 Chrome v62 及更高版本中无法处理警报
- vba - VBA:限定动态范围的工作表
- c# - 使用 .net 结合参数和表单数据调用 API 方法