Ứng dụng C# .NET của tôi ghi hàng triệu bản ghi vào bảng tạm thời bằng OracleBulkCopy. Mỗi khi ứng dụng có 20000 bản ghi hoặc nhiều hơn trong bộ nhớ, nó gọi OracleBulkCopy để viết tất cả chúng trong một lô (tôi đang sử dụng kích thước lô = 0). Lúc đầu bảng trống và chỉ mất 2 giây để viết toàn bộ lô. Trong suốt quá trình, thời gian viết hàng loạt tăng lên. Sau 2.000.000 bản ghi mỗi cuộc gọi mất gần 25 giây. Tôi đang sử dụng các tùy chọn mặc định của OracleBulkCopy. Làm một số bài kiểm tra khi bảng đạt 40.000.000 phải mất gần 3 phút để viết 20.000 hồ sơ.Hiệu suất của OracleBulkCopy
Tôi muốn biết nếu có bất kỳ đề xuất nào (tôi không thể tìm thấy bất kỳ điều gì về nó) để duy trì thời gian gần như không đổi cho mỗi cuộc gọi. Tôi có làm gì sai không?
Bạn có một số trình kích hoạt chèn trên bảng này không? – Nate
Không, không có gì. Thậm chí không phải là một khóa chính. Và bảng được đặt để không đăng nhập. –
Bảng "temp" chính xác có nghĩa là gì? Bảng tạm thời toàn cầu? – DCookie