[CSharp] Tăng hiệu suất Insert dữ liệu khi làm việc với SQLite

SQLite bulk insert data

Trong SQLite, mỗi khi muốn chèn 1 bản ghi vào Database thì chúng ra cứ query rồi exec là được. Nhưng khi bạn muốn insert (chèn) hàng trăm, hàng ngàn cho đến hàng triệu bản ghi thì phương pháp trên sẽ khiến cỗ máy của chúng ta ì ạch 1 cách không thể tưởng tượng nổi.

May mắn rằng SQLite có hỗ trợ chúng ta 1 phương pháp đóng gói nhiều câu lệnh insert vào làm một gói rồi thực thi nó trong 1 lần duy nhất.

Phương pháp đóng gói này giúp tăng hiệu suất của câu lệnh insert lên gấp hàng chục lần. Thực tế tôi đã thử thì insert 1 triệu bản ghi ngắn với phương pháp 1 trên con laptop già nua của tôi mất khoảng 200s, còn với phương pháp 2 thì chỉ mất hơn 10s. Tốc độ một trời một vực đúng không? :D

Trên Visual Studio, ở đây tôi sử dụng phiên bản VS2012, sử dụng NuGet Manager cài đặt gói System.Data.SQLite vào project của mình.

Đừng quên add dòng using System.Data.SQLite; vào đầu chương trình.

Dưới đây là đoạn chương trình thực hiện việc tạo 1 bảng và insert 1 triệu bản ghi vào bảng này.

Đoạn BeginTransaction() và Commit() chính là đoạn đóng gói các câu truy vấn lại. Nó sẽ giúp công việc insert dữ liệu dễ thở hơn rất nhiều.

Bạn có thể tìm hiểu kỹ hơn tại trang chủ của SQLite.

Leave a Reply

Be the First to Comment!

Notify of
avatar
wpDiscuz