前端時間做wince手持機應用時,用到了sqlce,在sql ce的資料流讀寫裡頭,我想插入資料,就直接把資料插入進去:
1 public static void insertintosqlce()
2
1213 tran.commit();
14 }
15 }
閒暇之餘,順手測試了一下sqlite的效率:
簡單的插入:
1 public static void insertintosqlite()
2
7 }
帶有事務的插入:
sqlite上面用事務插入
1 public static void insertintosqlitewithtran()
2
1213 tran.commit();
14 }
15 }
簡單插入:22952.6452ms,約21s到22s.
事務插入:245.404ms(非常強悍啊).
rt.沒有最爛的程式設計師,只有更爛的程式設計師.
ps: sql ce不是一般的爛,現在極其不想用sql ce了,版本眾多,功能簡單,部署困難....有機會的話用sqlite吧~~
ps:1.這次加上主鍵
num pk
自增,其他的不變,插入200條分別是47--55.7s和1.0--1.1s.
sqlite
上面表也一樣,插入200條資料分別是20--22s和270--310ms.
2.關於update
通過主鍵update另外兩個欄位的值,update200次.
sql ce
耗時為53850.4612--54642.9023ms和2103.0424--2188.6178ms.
sqlie
耗時為14469.8865--15233.3454ms
和181.2472--244.342ms.
注意,這些都為典型值,如果對效能有要求,可以多次測量估算平均值.
ps:特別訂正:
1. 在sql ce上面,事務並不能提高程式的效能,反而會有降低.之所以之前的程式表現"良好",是因為事務的使用降低了
sqlconnection開啟的時間消耗,在只用乙個connection的情況下,事務的的確確降低了程式的效能.這一點需要注意.
2. 在sqlite上面,怪異的事,事務反而提高的程式的效能.這就只能解釋為,sqlite的鎖消耗是非常大.據說sqlite的鎖是用檔案鎖實現的,所以效率較低.......
3. 嵌入式資料庫一般不存在併發問題,請在操作的時候使用長連線形式訪問資料庫,減小connection上面的消耗.
sqlce與sqlite資料庫的比較
hr cocreateinstance clsid sqlserverce 3 0,0,clsctx inproc server,iid idbinitialize,void pidbinitialize if failed hr dbprop 0 dwpropertyid dbprop init ...
MySQL和Sqlite3 效能測試對比
測試條件 i5 4460 3.2g,普通機械硬碟。mysql 5.0.45 community nt,32bit,innodb引擎,innodb flush log at trx commit 0 sqlite3 synchronous off,lockingmode exclusive table...
關於SqlCe的安裝
說起sqlce的安裝,說起來我有點不好意思的。為何呢?自從我從剛學使用.net companct framework開始,就接觸到sqlce的了,當時存在著兩個難題。乙個是sqlce的安裝,乙個就是程式的打包。當然我今天只說一下我sqlce的安裝咯。其實也沒啥,sqlce的安裝很簡單的。因為sqlc...