меня присоединиться к LINQ, как показано нижеLINQ присоединиться вызывая очень низкая производительность/правильный способ оптимизировать его
IEnumerable <UserATrailViewModel> v1 = from u in useratrailbusiness.GetAllUsers().AsQueryable()
join u1 in userPackageAtrailBusiness.GetAllUsers().AsQueryable()
on u.Uid equals u1.Uid into t1
from subpet in t1.DefaultIfEmpty()
orderby u.CreatedDate descending
select new UserATrailViewModel {
UserATID = u.UserATID,
Uid = u.Uid,
RoleId = u.RoleId,
FirstName = Md5Decryption.Decrypt(u.FirstName),
LastName = Md5Decryption.Decrypt(u.LastName),
Email = u.Email,
UserName = u.UserName,
CreatedDate = u.CreatedDate,
IsActive = u.IsActive,
CreatedBy = u.CreatedBy,
ModifiedDate = u.ModifiedDate,
ModifiedBy = u.ModifiedBy,
//UniqueGuid = u.UniqueGuid,
CompanyName = Md5Decryption.Decrypt(u.CompanyName),
Country = Md5Decryption.Decrypt(u.Country),
State = Md5Decryption.Decrypt(u.State),
City = Md5Decryption.Decrypt(u.City),
Address1 = Md5Decryption.Decrypt(u.Address1),
Address2 = Md5Decryption.Decrypt(u.Address2),
PhoneNo = Md5Decryption.Decrypt(u.PhoneNo),
MobileNo = Md5Decryption.Decrypt(u.MobileNo),
SrvDTStamp = u.SrvDTStamp,
ClientCountry = u.ClientCountry,
App_User = u.App_User,
Audit_Action = u.Audit_Action,
FullName = Md5Decryption.Decrypt(u.FirstName) + " " + Md5Decryption.Decrypt(u.LastName),
ContactNo = Md5Decryption.Decrypt(u.PhoneNo) + " , " + Md5Decryption.Decrypt(u.MobileNo),
PackageName = (subpet == null ? String.Empty : subpet.PackageName),
};
крайне медленно, так как это занимает от 18 до 24 секунд, чтобы извлечь данные даже для 40 до 50 записей , Как я могу сделать это быстрее, так как он очень медленный. Я не уверен, что это правильный способ получить эти данные или нет. Также оценивается любая другая альтернатива этому, которая может сделать процесс намного быстрее.
Если вы профилируете базу данных тем, что производит SQL? Когда вы запустите этот SQL, как выглядит план выполнения? Проблема здесь скорее связана с вашей базой данных, чем с вашим кодом. – Jamiec
@Jamiec Нет, у его кода возникает проблема с выбором select statement particalarly 'Md5Decryption.Decrypt (u.FirstName)', который никогда невозможен с linq на sql, поскольку я верить. –
@Jamiec Согласен, но, возможно, это связано с расшифровкой большого количества полей. –