Asp.net mvc 3 优化长时间linq表达式

Asp.net mvc 3 优化长时间linq表达式,asp.net-mvc-3,linq-to-entities,Asp.net Mvc 3,Linq To Entities,我的mv3实体项目中有这个linq表达式 SubCatNews = (from c in context.NewsInSubCats where (c.SubCat.Visible == true && c.SubCatNews.Visible == true && c.SubCatNews.StatusID == 1 && c.SubCatNews.New

我的mv3实体项目中有这个linq表达式

    SubCatNews = (from c in context.NewsInSubCats
      where
      (c.SubCat.Visible == true &&
          c.SubCatNews.Visible == true &&
          c.SubCatNews.StatusID == 1 &&
          c.SubCatNews.NewsTypeID != 5 &&
          (c.SubCatID == catId || c.SubCat.ParentId == catId))
orderby c.SubCatNews.SubCatNewsID descending
      select c.SubCatNews)
.Distinct()
.OrderByDescending(p => p.SubCatNewsID)
.Skip(pageIndex * pageSize)
.Take(pageSize);
我在SubCatNews表My News中有23000条记录

对于这些记录,请使用NewsInSubCats表将组关联到新闻

和组位于子类别表中

这是可行的,但从sql server获取过程的执行时间很长,并且在大多数情况下从sql server返回超时验证

我在一个带有2GB内存的虚拟专用服务器上托管了3个具有这种结构的站点

这是Linq表达式优化吗

或者我必须在sql server中使用索引


thanx

我建议。在sql server上创建索引,编写存储过程,传递所有必需的参数,包括pageindex和pagesize,并在sql端进行筛选,只返回必需的数据

要创建存储过程,可以检查以下URL


为了完成这项工作,我也向我的服务器提供商请求一个cpu内核和更多内存。谢谢你的回复