Tôi cần cải thiện hiệu suất tải dữ liệu. Chữ cái hiện tại tạo ra một lựa chọn đầy đủ từ một bảng:Làm cách nào để cải thiện hiệu suất chèn/cập nhật dữ liệu?
select Field1, Field2,...,FieldN from Table1 order by FieldM
Dữ liệu mới được đọc từ một tệp văn bản (dòng văn bản). Bảng có khóa chính, chứa hai trường. Đối với mỗi dòng của một tệp văn bản, nó định vị hàng cần thiết bởi hai trường này (tức là khóa chính).
query.Locate('Field1;Field2',VarArrayOf([Value1,Value2]),[]);
Nếu Locate
lợi nhuận True
, nó chỉnh sửa hàng, nếu không nó sẽ thêm một hình mới. Vì vậy, theo như bảng bao gồm khoảng 200.000 hàng, mỗi hoạt động Locate
mất một lượng thời gian nhất định ... do đó, nó quản lý để cập nhật khoảng 5-6 hàng mỗi giây.
Tôi nên cân nhắc điều gì để cải thiện nó?
Có thể thay thế vị trí thông qua lựa chọn tuyệt vời này với các truy vấn riêng biệt?
Giải pháp này giảm thời gian tải từ 4 giờ xuống dưới 4 phút. Tôi thực sự đánh giá cao sự giúp đỡ của bạn! Cảm ơn bạn! – horgh