明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

連接WEB數(shù)據(jù)庫的ADO性能提高技巧

[摘要]ADO(ActiveX Data Object)是ASP的重要組件,內(nèi)置于ASP。ASP用Database Access組件與后臺數(shù)據(jù)庫進(jìn)行連接。Database Access 組件通過 ADO 訪問存儲在數(shù)據(jù)庫或其他表格化數(shù)據(jù)庫結(jié)構(gòu)中的信息。因此,與過去編寫CGI程序訪問數(shù)據(jù)庫信息相比,ADO已...
ADO(ActiveX Data Object)是ASP的重要組件,內(nèi)置于ASP。ASP用Database Access組件與后臺數(shù)據(jù)庫進(jìn)行連接。Database Access 組件通過 ADO 訪問存儲在數(shù)據(jù)庫或其他表格化數(shù)據(jù)庫結(jié)構(gòu)中的信息。因此,與過去編寫CGI程序訪問數(shù)據(jù)庫信息相比,ADO已成為當(dāng)今開發(fā)者們最喜歡的恢復(fù)和修改SQL_SERVER數(shù)據(jù)庫數(shù)據(jù)的常用Database Access 組件。然而,ADO的默認(rèn)設(shè)置并不總是最優(yōu)化的設(shè)置,要想開發(fā)出強(qiáng)大的基于Client/Server和Web的應(yīng)用程序,有必要研究一下如何提高它的性能。實(shí)踐證明,可以從7個(gè)方面來提高ADO的性能。
1. 使用本地SQL SERVER OLE DB Provider屬性
Microsoft 對應(yīng)用程序訪問各種各樣的數(shù)據(jù)源所使用的方法是OLE DB,OLE DB介于ODBC(開放式數(shù)據(jù)庫連接標(biāo)準(zhǔn))層和應(yīng)用程序之間。在你的ASP頁面中,ADO介于OLE DB之上的“應(yīng)用程序”。你的ADO調(diào)用首先被送到OLE DB,然后送到ODBC層。OLE DB是一套組件對象模型(COM)接口。一般情況下,ADO默認(rèn),一個(gè)ADO Recordset 對象使用OLE DB Provider 作為 ODBC來連接SQL SERVER。然而,本地的OLE DB Provider 給SQL SERVER 提供了較短的代碼路徑,而這往往會較大地提高ADO 的性能。
2.復(fù)用現(xiàn)有的Connection 對象
如果你正在開發(fā)一個(gè)APS頁面的應(yīng)用程序,在一個(gè)Command 或Recordset 對象的ActiveConnection 屬性中復(fù)用現(xiàn)有的ADO Connection 對象。因?yàn)楫?dāng)ADO暗中打開或建立一個(gè)Connection 對象時(shí),通過運(yùn)用這種方法你可以避開一些額外的開銷。
3.明確地定義各種參數(shù)
雖然ADO能夠動(dòng)態(tài)地決定一個(gè)Command 對象所使用的各種參數(shù)屬性,較好地縮短開發(fā)周期,但是這種特性,在應(yīng)用程序中非常典型地增加了服務(wù)器的環(huán)路,在一定程度上降低了ADO 的性能。所以,明確地定義一個(gè)參數(shù)的Type, Direction and Size 可以減少應(yīng)用程序給服務(wù)器造成的環(huán)路數(shù)量。
4.調(diào)整緩沖區(qū)的大小
ADO的CacheSize 影響服務(wù)器方面的Keyset游標(biāo)及靜態(tài)和動(dòng)態(tài)的Recordsets。 在CacheSize的默認(rèn)設(shè)置下,ADO在修改和合并操作時(shí)工作狀態(tài)良好,但如果應(yīng)用程序需要恢復(fù)大量的數(shù)據(jù),就需要增加這個(gè)值?s減服務(wù)器的環(huán)路數(shù),是提高ADO和SQL SERVER應(yīng)用程序性能的關(guān)鍵。
5.使用Command 對象代替游標(biāo)
有時(shí),使用游標(biāo)來進(jìn)行修改操作幾乎是不可避免的。然而,修改游標(biāo)可能帶來額外的開銷,從而降低性能。但如果試圖使用包含著T-SQL Insert、Update、delete 語句的Command 對象來對服務(wù)器進(jìn)行發(fā)送修改操作可以使開發(fā)者得到較好的性能。
6.在Recordset對象中使用指針快速前移方法
最好的ADO數(shù)據(jù)更新性能來自于在Recordset對象中使用指針快速前移方法。一旦你設(shè)定一個(gè)Recordset 對象為前移,只讀和帶有值1的CacheSize,ADO就會在該對象中自動(dòng)生成一個(gè)快速前移的指針。這種方法使得大量的數(shù)據(jù)伴隨著很低的開銷從SQL Server流向Client 端。
7.使用最好的SQL
使用較好的SQL是從ADO和所有以SQL為基礎(chǔ)的數(shù)據(jù)存取技術(shù)獲得較好性能的最好方法。當(dāng)你建立SQL一個(gè)語句,包含你真正需要的一些行和列的時(shí)候,充分利用SQL內(nèi)置的存貯過程,可以使得服務(wù)器有效地處理所有的數(shù)據(jù)更新需求。