国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于WEB應用的Access數(shù)據(jù)庫JET與ACE引擎性能分析

2015-11-25 08:50
河南科技 2015年18期
關鍵詞:編程語言引擎速度

張 翔

(江西財經職業(yè)學院,江西 九江 332000)

Access全名為Microsoft Office Access,是一種由微軟出品的桌面數(shù)據(jù)庫管理軟件產品。雖然其定位不高,只適用于桌面級的中小型應用場合,但是因為它與風靡世界的Office套件聯(lián)系緊密,并且可以輕而易舉地在套件內實現(xiàn)數(shù)據(jù)互通而受到廣大非專業(yè)數(shù)據(jù)庫用戶的喜愛。另一方面,它最大文件體積2GB的限制和較為簡單的數(shù)據(jù)管理功能使得許多專業(yè)用戶不屑一顧,并不像MSSQL或MYSQL那樣專業(yè),具有強大的負載能力和更大的數(shù)據(jù)承載,但是由于學習成本低、管理簡單快速、具備親和力較強的可視化界面等一系列特點,在互聯(lián)網WEB站點的數(shù)據(jù)庫中依然占有一席之地,尤其是在國內使用WINDOWS SERVER系列操作系統(tǒng)的服務器中大行其道,至今仍然是快速開發(fā)和部署輕量級WEB應用的最佳選擇之一。

JET(Joint Engine Technology)的全稱是“微軟Jet數(shù)據(jù)庫引擎”,它是Access的默認數(shù)據(jù)庫引擎。雖然如今JET的地位已經大不如前,并且微軟曾經先后采用MSDE、SQL2005 Express等方案意圖取代JET,并且停止了更新JET,并且在最新的MDAC(MicrosoftData Access Components)中也不再包括JET[1]。JET并不能支持現(xiàn)在廣泛普及的64位系統(tǒng)和硬件,但是對于小型WEB應用來說,在非64位的x86架構Windows Server 2003中仍然是一個快捷且低成本的好選擇。

ACE(Access Connectivity Engine)是微軟2007年以后隨Office套件同時發(fā)布的數(shù)據(jù)庫引擎,它完全向下兼容各種以前的JET版本,它使用了一種新的默認文件格式(.accdb),但是也可以支持使用舊的文件格式(.mdb)。它的改進包括訪問復雜的數(shù)據(jù)類型、多值字段、歷史跟蹤、附件備注等等,同時也支持和改進了與Microsoft Windows SharePoint Services和Microsoft Office Outlook的集成。并且,ACE能夠良好地支持各種64位軟硬件環(huán)境,支持最新的Access2010以及Access2013。

雖然桌面級WEB小型應用并不大強調性能,但是能夠減少硬件負擔和建設成本是所有WEB應用設計者的共同目標,并且國內對新老引擎的性能分析在可查文獻中幾乎沒有,在知網(CNKI)中沒有任何完全相同或者近似的檢索結果,因此對于新老引擎在性能上的分析顯得非常有必要,大量的終端用戶需要了解,從mdb到accdb,從JET到ACE,對于WEB應用來說,性能究竟是進步了還是退步了,雖然用戶一般會認為,新的產品理所當然具有更優(yōu)秀的性能表現(xiàn)。

1 測試條件與測試方法

當前互聯(lián)網后端編程語言種類繁多,為增強測試結果的實用性和典型性,測試采用最流行的PHP(TIOBE數(shù)據(jù),2015年12月)[2]和在國內最簡易普及的ASP作為編程語言。

ASP(Active Server Page)是動態(tài)服務器頁面的英文縮寫,它是微軟公司為取代CGI腳本而開發(fā)的一種語言,具有簡單、快捷、學習成本低等特性,從1996年誕生以來,因為可以使用JavaScript和VBScript這兩種易學的腳本編寫,被大量中小型網站采用,直至替代品ASP.NET出現(xiàn)以后逐步式微,但仍然在國內擁有基數(shù)龐大的用戶。

PHP(Hypertext Preprocessor)是一種開源腳本語言。它吸收了多種語言的優(yōu)點,利于學習,被互聯(lián)網網站廣泛使用,具有速度快、免費、跨平臺、易用等特點,是編程語言活躍耀眼的常青之樹。

當前硬件發(fā)展水平較快,為凸顯測試結果,拉開測試項目之間的差距,硬件環(huán)境不宜過高,故選擇較為陳舊的雙核服務器作為測試的硬件環(huán)境,CPU為XEON E5110 1.6G,RAM只有2G。操作系統(tǒng)為可以同時搭載ASP和PHP運行環(huán)境的Windows Server 2003企業(yè)版,以IIS6.0作為ASP服務端軟件,APACHE作為PHP5.2服務端軟件。

因ACCESS版本眾多,在ACCESS 2003時數(shù)據(jù)格式為.MDB,數(shù)據(jù)引擎為Jet4.0,ACCESSS 2007推出后數(shù)據(jù)格式為.ACCDB,數(shù)據(jù)引擎為ACE12.0。另一方面,Jet驅動不支持.ACCDB格式,但ACE驅動可以兼容.MDB格式[3],所以本測試的數(shù)據(jù)庫及引擎采用MDB+JET,MDB+ACE,ACCDB+ACE三種方式進行組合。測試用數(shù)據(jù)庫均在ACCESS2013的環(huán)境下生成,為模擬真實的應用場景和環(huán)境,數(shù)據(jù)庫內的數(shù)據(jù)內容全部為真實的學生考試報名信息,其數(shù)據(jù)表字段包括:ID、用戶名、性別、身份證號碼、考生號、電話、手機、QQ、第一志愿、第二志愿、服從調劑、地址、學校、簡介、郵件地址。

測試程序:同時采用ASP和PHP編寫,在UML表現(xiàn)上的流程完全一致,且為避免各種差異影響,使用ADO連接數(shù)據(jù)庫對象,再建立記錄集對象以及計時器,然后讀取遍歷數(shù)據(jù)庫中的10 000條記錄并在每條記錄讀取時遍歷15個字段中的每個字段一次,最后結束計時并輸出耗時時間。程序的具體流程分為如下步驟:①建立ADOBE.Connection對象;②建立ADOBE.Recordset對象;③建立Timer;④判斷是否尾記錄,若非尾記錄則遍歷Fields.Value,完成后執(zhí)行Rs.movenext;⑤結束Timer;⑥輸出耗時。

2 測試結果

經測試,Access數(shù)據(jù)庫在PHP環(huán)境下,使用Jet和ACE兩種不同引擎進行WEB訪問模擬查詢的結果如下圖所示:

測試使用的時間單位為千分之一秒,即毫秒,時間越長則處理查詢消耗的時間越長,即可以認為是處理越慢,表現(xiàn)越差。MDB+JET平均處理時間為2 168.75ms,MDB+ACE的平均處理時間為2 240.625ms,MDB+ACCDB的平均處理時間為2 221.09375ms。

圖1

Access數(shù)據(jù)庫在ASP環(huán)境下,使用Jet和ACE兩種不同引擎進行WEB訪問模擬查詢的結果如下圖表所示:

圖2

在ASP環(huán)境下,MDB+JET平均處理時間為1 137.5ms,MDB+ACE的平均處理時間為1 289.844ms,MDB+ACCDB的平均處理時間為1 281.25ms。

3 結論

測試的結果說明:①Access數(shù)據(jù)庫在ASP中的表現(xiàn)比在PHP中的表現(xiàn)更好。雖然一般認為PHP遠比ASP更快更具備效率,但在各自的數(shù)據(jù)庫系統(tǒng)配合下,例如MSSQL+ASP對比MYSQL+PHP。②JET引擎配合舊的MDB格式數(shù)據(jù)庫在速度方面表現(xiàn)最佳。相反,用MDB格式搭配新的ACE引擎,在速度和穩(wěn)定上的表現(xiàn),無論在ASP中還是在PHP中,表現(xiàn)數(shù)據(jù)都是最差的。③ACE引擎配合ACCDB格式數(shù)據(jù)庫表現(xiàn)最穩(wěn)定。雖然在速度上不及舊的格式和舊驅動速度快,但是速度平穩(wěn),波動范圍較小,比新老組合搭配更加具有效率,比舊組合更具備穩(wěn)定性,具有適合WEB應用的獨特優(yōu)勢。

最后,本文的分析缺陷也是客觀存在的,一是測試數(shù)據(jù)浮動較大,在同一硬件條件下只能做到同一批次測試基本數(shù)據(jù)相符,在不同應用場合中可能會有不一致的表現(xiàn)或未可知;二是在安裝ACE驅動前后,舊格式數(shù)據(jù)庫與引擎的速度表現(xiàn)有區(qū)別,驅動安裝之前大約完成一次測試的時間平均在900~1000ms之間,比驅動安裝后似乎更加迅速,這一點有待詳細測試和驗證;三是互聯(lián)網環(huán)境對于測試有影響,隨機產生的訪問會對服務器性能造成影響。但是,總體而言,本文的分析證實了ACE引擎下ACCESS數(shù)據(jù)庫訪問性能的下降,舊的MDB格式配合JET引擎具備更佳的速度表現(xiàn),只是在穩(wěn)定性上略輸于新的ACE引擎組合。

[1]Stack Overflow.Difference between Microsoft.Jet.OleDb and Microsoft.Ace.OleDb[EB/OL].Stack Exchange.http://stackoverflow.com/questions/14401729/difference-between-microsoft-je t-oledb-and-microsoft-ace-oledb,2014-3-18.

[2]網易數(shù)碼.TIOBE 2015年12月編程語言排行榜.[EB/OL].http://digi.163.com/15/1205/23/BA3VIO2K00162OUT.html,2015-12-5.

[3]Microsoft Technet.Use ACE Drivers and PowerShell to Talk to Access and Excel[EB/OL].Hey,Scripting Guy!Blog.http://blogs.technet.com/b/heyscriptingguy/archive/2011/05/04/se-ace-drivers-and-powershell-to-talk-to-access-and-excel.aspx,2011-5-4.

猜你喜歡
編程語言引擎速度
行駛速度
基于JavaScript編程語言之 閉包技術在焦點輪播上的應用
速度
Java編程語言的特點與應用
淺談不同編程語言對計算機軟件開發(fā)的影響
藍谷: “涉藍”新引擎
比速度更速度——“光腦”來了
面向對象Web開發(fā)編程語言的的評估方法
無形的引擎
基于Cocos2d引擎的PuzzleGame開發(fā)
科尔| 屏南县| 平远县| 卢龙县| 榆中县| 桃源县| 新河县| 鹤峰县| 布尔津县| 吴川市| 松溪县| 巴中市| 满洲里市| 永修县| 新丰县| 广宁县| 宕昌县| 西贡区| 博乐市| 德江县| 班戈县| 布拖县| 屯门区| 德阳市| 叙永县| 无锡市| 沙雅县| 黄冈市| 龙游县| 交城县| 万源市| 白沙| 荆州市| 扶余县| 皋兰县| 吴江市| 泌阳县| 东兴市| 大理市| 沐川县| 乡城县|