Tôi thích công cụ ORM, nhưng tôi đã thường nghĩ rằng các bản cập nhật lớn (hàng ngàn hàng), có vẻ như không hiệu quả để tải, cập nhật và lưu khi một cái gì đó giống nhưcập nhật cơ sở dữ liệu khối lượng lớn với một ORM
UPDATE [table] set [column] = [value] WHERE [predicate]
sẽ cho hiệu suất tốt hơn nhiều.
Tuy nhiên, giả sử bạn muốn đi xuống tuyến đường này vì lý do hiệu suất, sau đó bạn sẽ đảm bảo rằng mọi đối tượng được lưu trong bộ nhớ được cập nhật chính xác.
Giả sử bạn đang sử dụng LINQ to SQL và bạn đã làm việc trên DataContext, làm cách nào để đảm bảo rằng UPDATE hiệu suất cao của bạn được phản ánh trong đồ thị đối tượng của DataContext?
Đây có thể là "bạn không" hoặc "sử dụng trình kích hoạt trên DB để gọi mã .NET làm giảm bộ nhớ cache" v.v., nhưng tôi muốn nghe các giải pháp chung cho loại sự cố này.
không phải là một trong những lý do sử dụng ORM? tức là nó cung cấp các cơ chế để đồng bộ hóa các đối tượng trong bộ nhớ và các đối tượng được lưu trữ được cập nhật? Tất nhiên, cơ chế của tôi là ORM cụ thể –
Có, nhưng quan điểm của tôi là nếu bạn sử dụng công cụ ORM và muốn cải thiện hiệu suất của các bản cập nhật hàng loạt bằng phương pháp SQL trực tiếp, bạn sẽ mất một số lợi ích của ORM. –