SqlCe和SQLite的對比試驗 結論

2021-06-05 20:09:36 字數 1440 閱讀 4147

前端時間做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...