Sqlite使用中的幾點體會

來源:http://www.cnblogs.com/hardrock/archive/2009/02/15/1391079.html 最近接了個美國的小項目,主要需求是把盤點機導出的數據(DBF格式)和另外的數據(csv格式)合併生成新的數據表,方便查詢糾錯。對方沒有安裝ms Access,考慮到對方使用方便,就採用了sqlite,開發語言使用.net 2.0。 下面簡單羅列下用過程中的幾點體會。 Provider:通過使用其他開源軟件的體會和網上搜索,Provider決定使用System.Data.SQLite。 事務(DbTransaction):因爲涉及數據導入合併,批量插入和更新等工作是必須的了,一開始沒有顯式調用事務,速度別提多慢,於是想當然覺得sqlite速度比access還慢,後來搜索發現,原來SQLite 缺省爲每個操作啓動一個事務,其實這是數據庫操作的基本常識,不僅僅Sqlite需要注意這些,當然Access等不支持事務的不在此列。 索引(index):數據導入合併,插入和更新時都需要查詢數據是否有重複以及存在,所以索引是不可以缺少的。 SQLiteParameter:批量插入的時候,爲了省懶事,使用string.format來格式化插入,結果碰到“near "s": syntex error.”,經過跟蹤,原來是單引號(')的問題,看來還是乖乖使用SQLiteParameter來規範地導入,並可以避免很多字符上的問題。 Update ...From(Cross Join in Update):Sqlite 不支持類似 “UPDATE tbl1 SET col2 = tbl2.col2 FROM table1 tbl1 INNER JOIN table2 tbl2 ON tbl1.col1 = tbl2.col1” 的update,替代的解決辦法是: UPDATE table1 SET col2 = (select col2 from table2 where table2.col1=table1.col1 limit 1) where exists(select * from table2 where table2.col1=table1.col1); 查詢分析器:我選擇SQLite Administrator,後來發現Firefox的插件(addons) Sqlite Manager也是不錯的選擇。
發佈了3 篇原創文章 · 獲贊 8 · 訪問量 80萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章