Ở đây tôi đang làm việc với LINQ to SQL Tôi có nhiều hơn thì 30000 hàng trong bàn của tôi.Giao dịch (Quy trình ID 56) đã bị khóa trên khóa?
Tôi đã sử dụng sau đây truy vấn cho lấy hồ sơ từ cơ sở dữ liệu:
IEnumerable<DealsDetails> DD = (from D in DealDbContext1.Deals
where D.Address == City && (D.DealTime >= DateTime.Now || D.DealTime == dealcheck) && PriceMax >= D.DealPrice && D.DealPrice >= PriceMin && DisCountMax >= D.SavingsRate && D.SavingsRate >= DiscountMin && (D.DealTime >= DateTime.Now.AddDays(TimeMin) && D.DealTime <= DateTime.Now.AddDays(TimeMax) || D.DealTime == dealcheck)
select new DealsDetails(
lst,
D.DealId,
D.DealHeadline,
D.DealCategory,
D.BuyPrice,
D.DealPrice,
D.SavingsRate,
D.SavingAmount,
D.RelatedWebsite,
D.Address,
string.Empty,
D.DealImage,
string.Empty,
string.Empty,
D.Time, D.CurrentTime, D.DealTime,
D.Location, string.Empty, string.Empty, D.Latitude, D.Longitude, D.Islocal, D.VendorMail, D.MerchantInfo, D.Review, D.HowItWork, D.DealUrl
));
if (lstSite.Count > 0 && lstSite[0] != "AllDeals")
{
DD = DD.Where(D => D.RelatedWebsite.Split(',').Where(x => lstSite.Contains(x)).Any()); //.Where(row => row.Category.ToList().Where(x => lst.Contains(x)).Any()).ToList();
}
Một số thời gian chạy truy vấn của tôi thành công hay một thời gian tôi đã Lỗi: giao dịch (Process ID 56) đã bế tắc về khóa | truyền thông đệm tài nguyên với một quá trình khác và đã được chọn là nạn nhân bế tắc. Chạy lại giao dịch.
Cảm ơn trước ...
Sẽ có một mục bế tắc trong nhật ký lỗi của SQL Server, bạn có thể đăng bài đó không? Nếu không, bật [traceflag 1204 hoặc 1222] (http://msdn.microsoft.com/en-us/library/ms178104.aspx) – Andomar
Mất bao lâu để chạy? – RobJohnson
Phiên bản SQL Server nào? [Nếu 2008 xem bạn có thể lấy biểu đồ bế tắc từ phiên sự kiện mở rộng mặc định] không (http://dba.stackexchange.com/questions/10644/deadlock-error-isnt-returning-the-deadlock-sql/10646#10646). Nếu không thiết lập để nắm bắt thời gian tiếp theo này. –