Tôi gặp sự cố với việc chèn sqlite hiệu suất ngay cả với các giao dịch. Ứng dụng android của tôi nhận được khoảng 23.000 hàng từ một dịch vụ web và tôi phải chèn chúng vào một bảng duy nhất.Chèn SQLite trở nên chậm hơn ngay cả với các giao dịch
Dịch vụ web được phân đoạn để tôi nhận được khoảng 2000 hàng trong mỗi yêu cầu gửi đến WS và tôi bọc 2000 chèn trong một giao dịch. Sau khi những chèn được thực hiện, tôi gửi yêu cầu mới đến WS và sử dụng lại một giao dịch mới cho hàng 2000 mới.
Lúc ban đầu nó hoạt động tốt. Nó làm rất nhiều chèn mỗi giây. nhưng với thời gian nó chậm hơn và cuối cùng kết thúc với 4 hoặc 3 lần chèn mỗi giây cho đến khi nó hoàn thành 23000 hàng.
Có vấn đề với kích thước của bảng không? Khi nó lớn hơn thì chèn sẽ chậm hơn? Có cách nào để cải thiện hiệu suất cho số lượng lớn dữ liệu đó không?
Cảm ơn sự giúp đỡ của bạn.
Bạn có bất kỳ chỉ mục nào có thể làm chậm chỉ mục này không? Và bạn có chắc chắn rằng bạn chỉ chèn 2000 vào một thời điểm, và không phải (tất cả dữ liệu nhận được cho đến nay) mỗi lần? –
Điều này nghe có vẻ như một bộ giao dịch đang hoạt động mở rộng khi không có COMMIT. – DaveE
Tất cả cũng phụ thuộc vào dữ liệu bạn đang chèn quá, các chuỗi sẽ làm chậm db của bạn. Kích thước của những hàng 2000 về byte là bao nhiêu? Sự khác biệt kích thước trong tệp DB sau khi chèn 2000 hàng. Tôi có một db với 388000 hàng và 64M của nó trong kích thước tập tin nhưng dữ liệu là tất cả tăng gấp đôi. – JPM