tôi đang làm như thế này:là nó ok để sử dụng Plinq ForAll cho một số lượng lớn chèn vào cơ sở dữ liệu?
entities.AsParallel().ForAll(o => repository.Insert(o));
được điều này tốt, tôi sẽ có thêm hiệu suất với điều này?
tôi đang làm như thế này:là nó ok để sử dụng Plinq ForAll cho một số lượng lớn chèn vào cơ sở dữ liệu?
entities.AsParallel().ForAll(o => repository.Insert(o));
được điều này tốt, tôi sẽ có thêm hiệu suất với điều này?
số
Cái này có thể nhanh hơn, vì nó thúc đẩy sự paralellism đến SQL, nhưng cuối cùng các SQL có để thực hiện một khóa cho bảng (trang), vì nó làm cho một chèn. do đó mỗi yêu cầu paralell được thực hiện sau một lần nữa.
Nếu bạn muốn chèn hàng loạt, thay vì SP chấp nhận tất cả các mục nhập (ví dụ: bảng có SQL 2008.) hoặc thực hiện với Linq2SQL.
đó sẽ là giải pháp thiết kế chính xác.
Có thể là không. Mỗi chèn sẽ thực sự diễn ra trên một luồng riêng biệt, trong khi số lượng lớn chèn hoạt động tốt bằng cách chuyển lượng lớn dữ liệu từ một chuỗi duy nhất, tại một thời điểm duy nhất.
PS: SqlBulkCopy sẽ hoạt động tốt hơn nhiều so với chèn song song. Sử dụng nếu có thể.