加速 SQLCE 的 insertion

據同事測試,在 WinCE6 上做 SQLCE database insertion 一筆會耗超過 20ms。如果 insert 2048 筆資料,那就會費時超過 40.96 秒!這是一個非常久的時間,因此我們就想要加速它。

查找網路後發現,SQLCE 支援一次 insert 多筆資料,且效率會比較好。語法如下:

INSERT INTO Count_Table (AlarmNum, Counter)
SELECT 0, 0
UNION ALL
SELECT 1, 0
UNION ALL
SELECT 2, 0
UNION ALL
...

以 2048 筆資料為例,改成每 20 筆才 insert 一次,效能竟然由 52.6 秒進步到 4.1 秒!然而再進一步改成每 40 筆 insert 一次,效能似乎沒增加太多。因此考慮程式寫法,SQL command 是放在 char buffer 裡與 stack size 的限制,因此就以 20 筆 insert 一次為最後的做法。

留言

熱門文章