mohsen-sh
دوشنبه 04 اردیبهشت 1391, 18:27 عصر
من عبارت Linq زیر رو که در آخر گفتم در سایتم دارم
با توجه به اینکه داده های سایت بسیار زیاد هست و در روز حداقل 500 رکورد به این جدول اضافه میشه،وقتی که من درخواست رو به صورتی برای این تابع میفرستم که گروه رو فیلتر نکنه و ازبین خبرهای تمام گروه ها برگردونه(catId) سرعت بسیار پایین میاد
چطور میتونم این دستور رو اپتیمایز کنم
ممنون
q = from c in context.NewsInSubCats
where
c.SubCat.Visible == true && c.SubCatNews.Visible == true && c.SubCatNews.StatusID == 1 &&
(catId != 0 ? (c.SubCatID == catId || c.SubCat.ParentId == catId) : true) &&
(imp == 1 ? c.SubCatNews.ImpStatus == true : true) &&
(!string.IsNullOrEmpty(UserName) ? c.SubCatNews.UsersID == context.Userss.Where(p => p.UserName == UserName).FirstOrDefault().UsersID : true) &&
(newsType == -1 ? c.SubCatNews.NewsTypeID != 2 : (newsType != 0 ? (c.SubCatNews.NewsTypeID == newsType) : true))
orderby c.SubCatNewsID descending
select c.SubCatNews;
با توجه به اینکه داده های سایت بسیار زیاد هست و در روز حداقل 500 رکورد به این جدول اضافه میشه،وقتی که من درخواست رو به صورتی برای این تابع میفرستم که گروه رو فیلتر نکنه و ازبین خبرهای تمام گروه ها برگردونه(catId) سرعت بسیار پایین میاد
چطور میتونم این دستور رو اپتیمایز کنم
ممنون
q = from c in context.NewsInSubCats
where
c.SubCat.Visible == true && c.SubCatNews.Visible == true && c.SubCatNews.StatusID == 1 &&
(catId != 0 ? (c.SubCatID == catId || c.SubCat.ParentId == catId) : true) &&
(imp == 1 ? c.SubCatNews.ImpStatus == true : true) &&
(!string.IsNullOrEmpty(UserName) ? c.SubCatNews.UsersID == context.Userss.Where(p => p.UserName == UserName).FirstOrDefault().UsersID : true) &&
(newsType == -1 ? c.SubCatNews.NewsTypeID != 2 : (newsType != 0 ? (c.SubCatNews.NewsTypeID == newsType) : true))
orderby c.SubCatNewsID descending
select c.SubCatNews;