最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于若干數(shù)據(jù)庫(kù)數(shù)據(jù)插入性能的對(duì)比分析

 更新時(shí)間:2011年10月18日 10:25:33   作者:  
前幾天,苦惱于到底使用哪一種本地?cái)?shù)據(jù)庫(kù)來(lái)存儲(chǔ)部分?jǐn)?shù)據(jù),于是決定做一個(gè)數(shù)據(jù)插入測(cè)試進(jìn)行求證
本地?cái)?shù)據(jù)庫(kù)接觸不多,最早用過(guò)Access,但現(xiàn)在SQLite功能更加強(qiáng)大--而且,說(shuō)實(shí)在的我不喜歡Access,連帶著不喜歡SqlServer,只要一看到滿(mǎn)眼的@號(hào)go號(hào)我就頭暈不止;更何況有一個(gè)我感覺(jué)非常致命的問(wèn)題:分頁(yè)太麻煩!遠(yuǎn)不如mySql/SQLite中的limit或者Oracle中的rownum來(lái)得痛快。

平時(shí)基本使用Oracle,對(duì)它的性能知根知底了;mySql近年來(lái)混得風(fēng)生水起,想必有過(guò)人之處,也一并納入測(cè)試范圍了。

另外,Access現(xiàn)在有2007版,不知道和2003版在性能上有什么區(qū)別沒(méi)有?特意分開(kāi)進(jìn)行測(cè)試。

測(cè)試環(huán)境如下:
服務(wù)器:本機(jī)(筆記本,I3 370,8G內(nèi)存)
操作系統(tǒng):windows 7 x64
語(yǔ)言環(huán)境:C#,使用控制臺(tái)程序測(cè)試。
虛擬機(jī):安裝SqlServer2008,2CPU,3G內(nèi)存。
數(shù)據(jù)庫(kù):Oracle11g(本機(jī)數(shù)據(jù)庫(kù))
SQLite(本機(jī)文件)
MySql(版本5的綠色版)
SqlServer(不想在本機(jī)安裝2008版本,本來(lái)想使用本機(jī)的學(xué)習(xí)版,但死活不行,只好在本機(jī)虛擬機(jī)上安裝一個(gè)2008版本,測(cè)試性能有所下降,但也只好如此了)
Access(2003版)
Access(2007版)
測(cè)試方法:先生成10000條記錄(每條記錄6個(gè)字段),插入數(shù)據(jù)前先清除原有數(shù)據(jù);
數(shù)據(jù)插入分為事務(wù)性寫(xiě)入(啟動(dòng)事務(wù),逐條插入后提交)及非事務(wù)性寫(xiě)入(不啟動(dòng)事務(wù),逐條插入)。
SqlServer數(shù)據(jù)庫(kù)在本地虛擬機(jī)的數(shù)據(jù)庫(kù)中,數(shù)據(jù)不太準(zhǔn)確;為消除網(wǎng)絡(luò)操作影響,將代碼移到虛擬中直接執(zhí)行一次。

測(cè)試過(guò)程中發(fā)現(xiàn)了若干有趣的問(wèn)題:
1.64位操作系統(tǒng)下,Access無(wú)法在編譯為AnyCpu的程序下執(zhí)行,必須編譯為x86方可正常操作。(如果是網(wǎng)站,必須將池設(shè)置為啟用32位兼容)
2.SQLite有64位版本的DLL,可以正常在64位環(huán)境(控制臺(tái)程序)下運(yùn)行;但很奇怪的是,如果是網(wǎng)站,則使用64位DLL反而無(wú)法正常運(yùn)行,必須使用32位版本的DLL,并且將IIS的池設(shè)置為啟用32位兼容才可正常運(yùn)行。
3.Access的2003版本與2007版本的數(shù)據(jù)庫(kù)連接串是不相同的,如下:
2003:@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\xxx\test.mdb";
2007:@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\xxx\test.accdb";
測(cè)試結(jié)果如下:
數(shù)據(jù)庫(kù)類(lèi)別 插入數(shù)量 本地事務(wù)(毫秒) 本地?zé)o事務(wù)(毫秒) 說(shuō)明
每條記錄耗時(shí) 每秒插入條數(shù) 每條記錄耗時(shí) 每秒插入條數(shù)
Oracle 10000 0.23 4300 0.9 1103 本地?cái)?shù)據(jù)庫(kù)
Sqlite 10000 0.0998 10016 6.86 146 本地?cái)?shù)據(jù)庫(kù)
MySql 10000 0.2574 3884 4.132 241 本地?cái)?shù)據(jù)庫(kù)
Sql Server 10000 0.42 2380 1.52 654 遠(yuǎn)程數(shù)據(jù)庫(kù)
Sql Server 10000 0.413 2418 1.433 697 本地?cái)?shù)據(jù)庫(kù),2CPU,2G內(nèi)存
代碼直接在虛擬機(jī)運(yùn)行
Access2003 10000 0.6 1664 46.87 21.33 本地?cái)?shù)據(jù)庫(kù)
Access2007 10000 0.73 1369 47.57 21.02 本地?cái)?shù)據(jù)庫(kù)
結(jié)果很有意思:
1.SQLite的事務(wù)插入速度最快,達(dá)到10000條每秒,但非事務(wù)性的插入速度就一般了。
2.Oracle作為數(shù)據(jù)庫(kù)的老大,事務(wù)插入速度僅次于SQLite,但非事務(wù)性的插入速度居首。
3.可憐Access,不試不知道,一試嚇一跳,事務(wù)插入最慢,非事務(wù)插入更慢;本來(lái)對(duì)Access2007還有點(diǎn)期待的,沒(méi)想到它比2003版本的數(shù)據(jù)還差。
4.mySql還真是不賴(lài),事務(wù)插入的性能僅次于Oracle,非事務(wù)性的插入沒(méi)有那么強(qiáng),但也還不錯(cuò)。
從數(shù)據(jù)來(lái)看,發(fā)覺(jué)一個(gè)比較有規(guī)律的現(xiàn)象:大型數(shù)據(jù)庫(kù)與小型數(shù)據(jù)庫(kù)、本地型數(shù)據(jù)庫(kù)的區(qū)別,不在于事務(wù)性插入性能的高低,而在于非事務(wù)性插入性能的高低。Oracle最強(qiáng),每秒達(dá)到1000條以上;其次是SqlServer,也有700條每秒;mySql相比之下就差多了,只達(dá)到240條每秒左右,這個(gè)性能整整差了一個(gè)等級(jí);比較意外的是SQLite,非事務(wù)性插入性能雖然比mySql差一點(diǎn),但也相差不大(不是數(shù)量級(jí)的差別);最糟糕的是Access,非事務(wù)數(shù)據(jù)插入性能慘不忍睹,和SQLite相比,整整差了一個(gè)數(shù)量級(jí)。

由上可見(jiàn),如果選擇本地?cái)?shù)據(jù)庫(kù),SQLite應(yīng)該是首選。而且在應(yīng)用中還應(yīng)該注意,盡可能把數(shù)據(jù)集中起來(lái)進(jìn)行事務(wù)性數(shù)據(jù)寫(xiě)入,如此可以大大提升該數(shù)據(jù)庫(kù)的性能。

相關(guān)文章

最新評(píng)論

钟山县| 赣州市| 藁城市| 南江县| 诸城市| 青神县| 临西县| 泗水县| 贵德县| 乌拉特中旗| 东山县| 南京市| 南城县| 普安县| 安塞县| 丰原市| 侯马市| 桦南县| 响水县| 遂昌县| 黎平县| 昌黎县| 忻州市| 会昌县| 宁波市| 游戏| 错那县| 望都县| 金山区| 攀枝花市| 巴彦县| 吴忠市| 江西省| 嘉祥县| 彩票| 北辰区| 民勤县| 清镇市| 张家港市| 汝州市| 麻阳|