LINQ Group查询速度慢

时间:2014-06-05 15:05:07

标签: c# linq-to-entities

由于某种原因,我的很多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>

0 个答案:

没有答案