亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        ADO.NE在Web應用中的性能優(yōu)化模型分析

        2008-04-12 00:00:00廖世蓉
        現(xiàn)代電子技術 2008年14期

        摘 要:ADONE是NE架構下的數(shù)據(jù)庫訪問技術,ADONE以XML作為傳遞和接收數(shù)據(jù)的格式,與ADO相比,它提供了更大的兼容性和靈活性。這里就其Web數(shù)據(jù)庫訪問提出一個性能優(yōu)化模型,并對這些性能優(yōu)化技術進行比較、討論和測試。通過對測試結果的分析可知,要開發(fā)出一種高效檢索和存取數(shù)據(jù)的APNE應用程序,應該優(yōu)化ADONE數(shù)據(jù)訪問代碼,應用這樣的模式進行

        Web應用程序開發(fā),能大大提高對數(shù)據(jù)庫訪問的效率和性能。

        關鍵詞:ADONE;性能;優(yōu)化;模型

        Analysis on Optimization Model of Ability of ADONE Used in Web

        LIAO hirong

        (Chengdu Vocational College of Agricultural cience and echnology,Chengdu,611130,China)

        Abstract:ADONE is the database visiting technology under the NE frame,which takes XML as the format to transfer and receive data,and is more compatible and flexible compared with ADOhe article introduces an optimized performance mode,meanwhile makes a series of comparisons,discussions and tests between these optimized performance technologieshrough the analysis of the results,it is clear that we should optimize the visiting code of ADONE data and apply this mode to exploit Web application in order to get the APNE application and greatly improve the efficiency and performance of visiting database

        Keywords:ADONE;performance;optimization;model

        1 問題的提出

        數(shù)據(jù)庫技術與Web技術相結合是當前應用的熱點,其中最關鍵的就是Web數(shù)據(jù)庫訪問技術。ADONE以ActiveX數(shù)據(jù)對象(ADO)為基礎,但與依賴于連接的ADO不同,ADONE是專門為了對數(shù)據(jù)存儲進行無連接數(shù)據(jù)訪問而設計的。

        ADONE以XML(擴展標記語言)作為傳遞和接收數(shù)據(jù)的格式,與ADO相比,它提供了更大的兼容性和靈活性。當前的桌面應用程序大都推出B/版本,對于Web應用程序,需要大量的訪問數(shù)據(jù)庫,如何提高Web數(shù)據(jù)庫訪問的效率和性能,是一個現(xiàn)實問題。

        本文就ADONE在數(shù)據(jù)存取方面的性能優(yōu)化,如何得到更快、更可信的數(shù)據(jù)訪問代碼進行分析。

        2 ADONE概述

        ADONE對象模型有兩個核心組件:Dataet 和NE Framework,基本架構見圖1。

        (1) NE Framework 數(shù)據(jù)提供程序

        它是面向連接的,由一組對象組成,包括 Connection,Command,DataReader和DataAdapter 等核心對象。主要功能為:連接到數(shù)據(jù)源,以便檢索和修改數(shù)據(jù)源中的數(shù)據(jù),并在數(shù)據(jù)源和 Dataet 之間起著橋梁的作用。

        (2) Dataet

        Dataet是ADONE的中心概念可以把Dataet當成內(nèi)存中的數(shù)據(jù)庫,Dataet是不依賴于數(shù)據(jù)庫的獨立數(shù)據(jù)集合。即使斷開數(shù)據(jù)鏈路,或者關閉數(shù)據(jù)庫,Dataet依然是可用。Dataet在內(nèi)部是用XML描述數(shù)據(jù),由于XML是一種與平臺無關、與語言無關的數(shù)據(jù)描述語言,而且可以描述復雜關系的數(shù)據(jù),所以Dataet可以容納具有復雜關系的數(shù)據(jù),而且不在依賴于數(shù)據(jù)庫鏈路。Dataet 是數(shù)據(jù)的內(nèi)存駐留表示形式,無論數(shù)據(jù)源是什么,它都會提供一致的關系編程模型;它可以用于多個不同的數(shù)據(jù)源,用于 XML 數(shù)據(jù),或用于管理應用程序本地的數(shù)據(jù)。Dataet表示包括相關表、約束和表間關系在內(nèi)的整個數(shù)據(jù)集,通過 DataAdapter 控制其與現(xiàn)有數(shù)據(jù)源的交互。

        3 ADONE性能優(yōu)化模型

        要開發(fā)出一個能以有效的方式來檢索和存取數(shù)據(jù)的APNE應用程序,就應該編寫高效率高性能經(jīng)過優(yōu)化的ADONE數(shù)據(jù)訪問代碼,充分發(fā)揮ADONE的優(yōu)勢。為達到這一目的,需要對ADONE的不同優(yōu)化技術和使用方法進行全面的分析,并給出客觀的性能測試,特別是數(shù)據(jù)存取性能上。

        ADONE數(shù)據(jù)訪問的性能優(yōu)化內(nèi)容如圖2所示,即:連接池的性能分析;NE數(shù)據(jù)提供程序選擇比較使用;DataReader,Dataet和Recordet的性能比較分析;存儲過程的性能分析;Dataet和DataReader的調用細節(jié)性能分析等。 

        31 連接池的性能分析

        對于要訪問數(shù)據(jù)庫的APNE應用程序,需要建立到數(shù)據(jù)庫的連接并使用該連接進行數(shù)據(jù)存取。然而,與數(shù)據(jù)庫建立連接要花費相對較長的時間進行協(xié)商,數(shù)據(jù)庫連接也會消耗寶貴的系統(tǒng)資源如CPU處理能力、內(nèi)存和網(wǎng)絡帶寬等。解決辦法:使用連接池技術(connection pooling),用來加速連接過程和避免浪費系統(tǒng)資源。連接池是一組簡單的帶有類似于連接字符串的連接。在開發(fā)一個多層應用程序時,有效地利用連接池可以提高應用程序的性能。圖3展示了一個帶連接池的多層應用程序。

        ADONE中的連接池非常簡單,在ADONE中的每個NE數(shù)據(jù)提供程序(QL erver和OLE DB)都可實現(xiàn)連接池。當請求一個新連接時,NE數(shù)據(jù)提供程序會檢查該請求已提供的憑據(jù)(數(shù)據(jù)庫位置、用戶名等),并在池中以匹配憑據(jù)的方式搜索打開的連接,如果找到有這樣的一個連接,就將該連接遞交給該請求;否則就只有創(chuàng)建并返回一個新建的連接。

        當關閉連接對象時,NE數(shù)據(jù)提供程序并不真正的關閉實際的數(shù)據(jù)庫連接。它將連接對象標記為已關閉,并將其存儲在連接池中。如果該數(shù)據(jù)庫連接在特定的時間內(nèi)未被再次使用,NE數(shù)據(jù)提供程序就會真正的關閉此連接。

        表1展示了有無連接池情況下,連續(xù)循環(huán)1 000次,建立連接(打開后馬上關閉)所需要的時間對比。

        32 ADONE數(shù)據(jù)提供者比較

        要訪問不同的數(shù)據(jù)源,選擇適當?shù)臄?shù)據(jù)提供者,對性能的影響很大。

        NE數(shù)據(jù)提供者是處理特定類型的數(shù)據(jù)庫的一組類“集”。所有的數(shù)據(jù)提供者都必須提供一組基本的功能,但不同的數(shù)據(jù)提供者可能有許多額外的屬性和方法,只能被用來訪問某一特定的數(shù)據(jù)存儲。也就是說不同的數(shù)據(jù)提供者是對不同的數(shù)據(jù)存儲類型進行專門的優(yōu)化,使得其訪問不同的數(shù)據(jù)源有不同的運行效率和性能。NE架構共提供了4種數(shù)據(jù)提供程序,他們是:QL Client,OLE DB,ODBC,Oracle Client 數(shù)據(jù)提供程序。其中QL Client數(shù)據(jù)提供程序是專門針對QL erver 70及以上版本作了優(yōu)化。

        QL ClientNE 數(shù)據(jù)提供程序:用于使用QL erver 70 及更高版本的中間層和單層應用程序;用于 QL erver 的 OLE DB 提供程序 (QLOLEDB) 與 OLE DBNE數(shù)據(jù)提供程序一起使用。OLE DB NE 數(shù)據(jù)提供程序:用于使用QL erver 6 或較早版本的中間層應用程序,或任何支持 OLE DBNE數(shù)據(jù)提供程序所使用的 OLE DB 接口中所列 OLE DB 接口(不支持 OLE DB 2 接口)的 OLE DB 提供程序;使用Access 數(shù)據(jù)庫的單層應用程序。ODBC NE數(shù)據(jù)提供程序:用于使用 ODBC 數(shù)據(jù)源的中間層應用程序和單層應用程序。OracleNE數(shù)據(jù)提供程序:用于使用 Oracle 數(shù)據(jù)源的中間層應用程序和單層應用程序;支持 Oracle 客戶端軟件 817 版和更高版本。

        測試及分析:

        分別用QL ClientNE,OLE DBNE,ODBCNE,OracleNE數(shù)據(jù)提供程序(由于不能訪問QL erver數(shù)據(jù)庫,未作考慮)分別去連接QL erver 數(shù)據(jù)庫,并完成相關的連接、檢索(簡單的)、更改操作,測試其運行的效率。完成3項的測試內(nèi)容為:

        分別連接數(shù)據(jù)庫所需時間,即cnnopen();分別從數(shù)據(jù)庫中去檢索出200 000條記錄所需的時間,采用的方式是用DataAdapter去將數(shù)據(jù)檢索出來并填充到相應的數(shù)據(jù)集(Dataet)中;分別對這200 000條記錄中每條記錄都更新一個字段值。通過命令的ExecuteNonQuery方法實現(xiàn)。運行結果見表2。

        分析:從上表可以看出,QL ClientNE效率最高,OLE DBNE次之,ODBCNE最慢。當數(shù)據(jù)庫為QL erver 2000時,無論是在數(shù)據(jù)庫連接、數(shù)據(jù)提取、數(shù)據(jù)更新方面,QL ClientNE提供程序執(zhí)行效率都比OLE DBNE提供程序和ODBCNE提供程序都具有非常明顯的優(yōu)勢。因此當連接微軟QL erver數(shù)據(jù)庫時,建議采用QL ClientNE數(shù)據(jù)提供程序訪問數(shù)據(jù)庫;而對于ORACLE 數(shù)據(jù)庫,則采用OracleClientNE提供程序;對于ybase,Informix,DB2,Access等數(shù)據(jù)庫則采用OLE DBNE提供程序來連接。 

        33 存儲過程的性能優(yōu)化

        使用存儲過程與直接使用QL語句相比具有事務處理、執(zhí)行速度、進程控制、安全性、減少網(wǎng)絡通信流量、模塊化等優(yōu)勢。

        對存儲過程的使用可以通過DataAdapter對象執(zhí)行存儲過程將數(shù)據(jù)送到Dataet或送往數(shù)據(jù)庫;或直接通過Command對象執(zhí)行存儲過程將數(shù)據(jù)送到DataReader、界面或數(shù)據(jù)庫中去。它們都可以使用參數(shù)對象向存儲過程傳遞參數(shù)。下面通過使用存儲過程和直接傳遞QL語句來進行測試比較:

        將\"delete from publishers\"+\";\"+ \"insert publishers (pub_name,city,state,country) values(@pub_name,@city,@state,@country)\"+\";\"+\"update publishers set state=@state\"+\";\"+\"select from publishers\"。分別編寫存儲過程和直接使用QL語句分別執(zhí)行 000次。運行結果見表3。

        分析:其實上面的測試代碼并沒有完全發(fā)揮出存儲過程的優(yōu)勢,但可以看出它們之間的性能差別。存儲過程通常是數(shù)據(jù)庫交互的首選方法,盡管存儲過程很多優(yōu)點,但仍有某些情況不適合使用存儲過程。存儲過程存在的主要問題是可擴展性。

        34 DataReader,Dataet和Recordet性能比較

        DataReader提供對來自數(shù)據(jù)源的數(shù)據(jù)流的只讀,只向前訪問;主要用于讀取數(shù)據(jù)以填充像標簽、列表或者DataGrid之類的數(shù)據(jù)感知控件,并最小限度使用資源,適合Web應用程序(無狀態(tài)應用)。

        Dataet專門針對斷開連接開發(fā)的,用作數(shù)據(jù)的本地存儲機制,為數(shù)據(jù)源提供一個本地的不連接的副本,通過DataAdapter與數(shù)據(jù)源保持同步,也可以用作獨立的數(shù)據(jù)存儲對象。主要用途:顯示復雜的數(shù)據(jù)(來自于多個數(shù)據(jù)源或者相關數(shù)據(jù))、寫(編輯、創(chuàng)建、刪除、寫回)數(shù)據(jù)源中的數(shù)據(jù)。

        Recordet:為目前大量存在的 使用ADO的應用程序而提供的向前兼容版本。

        三種形式在APNE應用程序中的測試和分析:

        測試內(nèi)容:針對Northwind數(shù)據(jù)庫中的Orders和Order Details兩個表的內(nèi)連來查詢數(shù)據(jù)。其中Orders表的記錄為830條。 使用QL servernet 提供程序連接QL erver。

        循環(huán)100次測試的結果見表4。

        對于Web應用程序而言,一般不會出現(xiàn)重復讀取完整的緩存中的數(shù)據(jù)集,因為Web應用程序這樣的無狀態(tài)的程序,是不能利用由Dataet提供的高速緩存。在APNE 中,DataReader效率最高,將數(shù)據(jù)從數(shù)據(jù)庫中提取到內(nèi)存中,Dataet的填充最耗時,但如果對于桌面程序,可能要反復使用緩存中的數(shù)據(jù),這時Dataet效率最高,因為它耗時最小,這也是Dataet為斷開的連接而開發(fā)的主要原因。

        ADONE中不同的調用方法、屬性使用、數(shù)據(jù)類型使用都存在不同的性能差異。主要有:

        (1) 基于名稱或序號對數(shù)據(jù)元素的訪問

        使用基于名稱的訪問,DataReader要根據(jù)提供的字符串在其內(nèi)部結構中定位該列,它要對結果集中的每行都要執(zhí)行一個基于字符串的查找,必然浪費一定的性能;使用基于序號或索引的訪問,性能要高一些。

        (2) 使用適當?shù)念愋椭付℅et方法

        使用與結果集中列返回的數(shù)據(jù)相對應的類型指定Get方法,可以提高應用程序性能。如DataReaderInstanceGetValue(i)otring()與DataReaderInstanceGettring(i)在執(zhí)行效率上是不同的。前者返回的是Object類型,還必須將其轉換為字符串數(shù)據(jù)。而后者直接返回的是字符串數(shù)據(jù),無須轉換,性能當然會提高。

        下面分別按名稱和索引循環(huán)從庫中取數(shù)據(jù),結果見表。

        數(shù)據(jù)測試結果見表所示,從測試數(shù)據(jù)也說明Dataet和DataReader在使用上的性能優(yōu)化差異。

        4 結 語

        對于APNE應用程序而言,要開發(fā)出速度更快更可信的數(shù)據(jù)訪問代碼,提高數(shù)據(jù)訪問性能,應該就其模型進行優(yōu)化,在連接池,NE數(shù)據(jù)提供者的選擇,存儲過程的使用,DataReader,Dataet和Recordet的選擇及其具體的調用方法等方面作出優(yōu)化的選擇。從而使系統(tǒng)的性能得到改善。

        參 考 文 獻

        [1]John Kauffman,Brian MatsikAPNE數(shù)據(jù)庫入門經(jīng)典-C#編程篇[M].張哲峰,黃翔宇,譯.北京:清華大學出版社,2003

        [2][美]David ceppaADONE技術內(nèi)幕[M]梁超,張莉,賀錕,譯北京:清華大學出版社,2003

        [3]涂靜ADONE調用存儲過程的方法[J]電腦與信息技術,2003(3):33-36

        [4]Microsoft Visual tudioNE 2003文檔[Z]2003

        魏崢ADONE程序設計教程與實驗[M] 北京:清華大學出版社,2007

        [6]David ceppaProgramming Microsoft ADONE 影印[M]北京:清華大學出版社,2003

        [7]劉友華NE環(huán)境下數(shù)據(jù)庫應用系統(tǒng)開發(fā)技術[M]北京:科學出版社,2004

        [8][美]巴克VBNE與ADONE數(shù)據(jù)庫編程[M]北京:機械工業(yè)出版社,2003

        [9]田麗平基于APNE的科研管理信息系統(tǒng)的建立[J]內(nèi)蒙古農(nóng)業(yè)大學學報,2007(1):-7

        [10][美]昌德APNE交互式Web數(shù)據(jù)庫程序設計[M]韓江,譯北京:電子工業(yè)出版社,200

        [11]孔延香,李永忠,郭秀峰ADONE數(shù)據(jù)庫訪問技術研究與實現(xiàn)[J] 現(xiàn)代電子技術,200,16(29):1-2,9

        作者簡介 廖世蓉 女,194年出生,副教授。研究方向為數(shù)據(jù)庫原理及應用。

        亚洲一区二区三区av在线免费| 无码欧美毛片一区二区三| 97精品人妻一区二区三区香蕉| 日韩精品欧美激情亚洲综合| 日本精品啪啪一区二区| 99re6在线视频精品免费下载| 野外少妇愉情中文字幕| 日韩秘 无码一区二区三区| 麻豆视频在线观看免费在线观看| 人妻精品在线手机观看| 久久久久久国产精品无码超碰动画 | 亚洲国产精品无码久久一线| 四虎影视在线影院在线观看| 亚洲—本道中文字幕久久66| 少妇人妻精品一区二区三区视| 亚洲爆乳无码精品aaa片蜜桃 | 青青草成人在线播放视频| 久久久国产乱子伦精品作者| 国产伦精品一区二区三区视| 日韩国产自拍成人在线| 亚洲欧洲免费无码| 99久久国产福利自产拍| 2020国产精品久久久久| 日本一区二区在线播放视频 | 亚州av高清不卡一区二区| 国产欧美日韩精品丝袜高跟鞋 | 青娱乐极品视觉盛宴国产视频| 丰满多毛少妇做爰视频| 午夜日本精品一区二区| 操风骚人妻沉沦中文字幕| 亚洲熟妇无码八av在线播放| 黑人巨大精品欧美在线观看| 国产精品亚洲一二三区| 中文字幕日本人妻久久久免费| 国产久热精品无码激情 | 色婷婷一区二区三区四| 久久婷婷国产综合精品| 在线播放亚洲第一字幕| 美女叉开双腿让男人插| 国产av激情舒服刺激| 波多野结衣一区二区三区高清|