由于某种原因,我的很多Linq查询都在永远。当我在TOAD中使用等效的SQL运行此查询时,大约需要10秒。我需要运行的其他查询甚至比这更复杂,所以它让我对用户感到紧张。
当从linq和实体框架运行这个需要1分钟时,我真的很茫然。你能提供的任何帮助都会很棒。
model.NextYearStructure =(from b in context.BI_b_ACCOUNT_STRUCT
join dlr in context.ACCOUNT on b.D_ACCT_KEY equals dlr.ACCT_KEY
join sales in context.CBR_ORDER_FULFILLMENT_MV on dlr.ACCT_KEY equals sales.D_ACCT_KEY
join org in context.BI_b_SLS_ORG on b.b_ORG_KEY equals org.b_ORG_KEY
join dd in context.DATE_DIM on sales.FY_ADJ_DATE_KEY equals dd.DATE_KEY
where org.SLS_LVL_2_ID == abmid && org.SLS_LVL_3_ID == dsmid && dd.FY == "2014"
group new {
org,
sales
} by new {
org.SLS_LVL_3_LAST_NAME,
org.SLS_LVL_3_FIRST_NAME,
sales.NET_SALES_QTY
} into g
select new ViewNyStructure {
dsmName = g.Key.SLS_LVL_3_FIRST_NAME + " " + g.Key.SLS_LVL_3_LAST_NAME,
TotalSales = g.Sum(x=>x.sales.NET_ORDER_QTY)
}).Distinct().AsQueryable();
这是我在.cshtml
<table class="table">
<tr>
<th>Name</th>
<td>Sales</td>
</tr>
@foreach (var NextYear in Model.NextYearStructure)
{
<tr>
<td>
@NextYear.dsmName
</td>
<td>
@NextYear.TotalSales
</td>
</tr>
}
</table>