探索ADO.NET訪問(wèn)數(shù)據(jù)庫(kù)功能實(shí)踐
本文主要分析了ADO.NET訪問(wèn)數(shù)據(jù)庫(kù)中兩種典型的數(shù)據(jù)訪問(wèn)模式的性能,以及有肋于提高數(shù)據(jù)訪問(wèn)性能的存儲(chǔ)結(jié)構(gòu)和連接池技術(shù),并進(jìn)一步研究了ADO.NET中其他優(yōu)化數(shù)據(jù)訪問(wèn)性能的方法。
.NET平臺(tái)是Microsoft推出的新的程序開(kāi)發(fā)平臺(tái),集成了多種開(kāi)發(fā)語(yǔ)言,它實(shí)現(xiàn)了企業(yè)級(jí)Web應(yīng)用程序的快速開(kāi)發(fā).開(kāi)發(fā)過(guò)程中,通過(guò)數(shù)據(jù)庫(kù)訪問(wèn)類(lèi)ADO.NET對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)操作.ADO.NET是Microsoft推出的一組用于和數(shù)據(jù)源進(jìn)行交互的面向?qū)ο箢?lèi)庫(kù),通過(guò)其可以快速的訪問(wèn)數(shù)據(jù)庫(kù).但是,在訪問(wèn)過(guò)程中,一些技巧或是技術(shù)如果運(yùn)用得當(dāng),可以在一定程度上提高訪問(wèn)性能.本文將從幾個(gè)方面來(lái)探討提高ADO.NET訪問(wèn)數(shù)據(jù)庫(kù)性能的方法.
ADO.NET的設(shè)計(jì)目的是從數(shù)據(jù)操作中分解出數(shù)據(jù)訪問(wèn),其體系結(jié)構(gòu)主要包括兩個(gè)核心組件:DataSet和.NET Framework數(shù)據(jù)提供程序.ADO.NET支持面向流的數(shù)據(jù)訪問(wèn)和面向集的數(shù)據(jù)訪問(wèn),闡述了這兩種數(shù)據(jù)訪問(wèn)機(jī)制的區(qū)別及其各自的特點(diǎn),并對(duì)具體應(yīng)用進(jìn)行了研究.
在ADO.NET中,雖然對(duì)于服務(wù)器端的游標(biāo)不提供任何支持,但這不意味著你就不能使用游標(biāo).實(shí)際上,你所需要做的步驟是在.NET中輸入ADO庫(kù).你只需在references node上單擊右鍵,就可以在你自己的程序里運(yùn)行本地ADO.NET訪問(wèn)數(shù)據(jù)庫(kù)。#t#
但是我個(gè)人認(rèn)為,在你想轉(zhuǎn)向.NET時(shí),請(qǐng)慎重考慮. 首先,請(qǐng)務(wù)必完全輸入ADO.NET訪問(wèn)數(shù)據(jù)庫(kù), 這不會(huì)花費(fèi)太多時(shí)間和精力,這是向.NET邁出的第一步,.但是,這僅僅是萬(wàn)里長(zhǎng)征的第一步而且也是通向.NET必須的一步. .NET的真正附加值是基于一個(gè)均勻的,持續(xù)穩(wěn)定的接口以及本地classes的廣為應(yīng)用之上的.關(guān)于COM libraries是可以被支持的,合理的,但不被鼓勵(lì)的,因?yàn)樗鼉H僅是個(gè)短期解決方案,或者是一個(gè)過(guò)渡步驟.。
需要記住的是,雖然在這里不做推薦,但你也可以利用ADO .NET 類(lèi)來(lái)連接到SQL Server數(shù)據(jù)庫(kù). 這種方法唯一不足是,代碼需要通過(guò)一個(gè)不必要的額外代碼層. 首先它會(huì)調(diào)入ADO的托管提供程序, 然后ADO的托管提供程序再調(diào)用SQL Server OLE DB 提供程序. 如同OLE DB 提供程序做的一樣,ADO.NET訪問(wèn)數(shù)據(jù)庫(kù)托管提供程序會(huì)直接操作數(shù)據(jù),
關(guān)于ADO 和ADO.NET在連接對(duì)象上最大的差別在于ADO.NET連接不支持CursorLocation屬性.與其說(shuō)這是一個(gè)文檔BUG,還不如認(rèn)為這是一個(gè)備具爭(zhēng)議的設(shè)計(jì)問(wèn)題.為強(qiáng)制執(zhí)行它的以數(shù)據(jù)為中心的基準(zhǔn),ADO.NET訪問(wèn)數(shù)據(jù)庫(kù)沒(méi)有游標(biāo)的顯示實(shí)現(xiàn).
在ADO.NET訪問(wèn)數(shù)據(jù)庫(kù)中,你已習(xí)慣于利用游標(biāo)將記錄從數(shù)據(jù)庫(kù)或其它OLE DB兼容的數(shù)據(jù)源中抽取, 你可以選擇客戶(hù)端或是服務(wù)器端游標(biāo),每種游標(biāo)都有幾個(gè)預(yù)先設(shè)定的游標(biāo)類(lèi)型. 而在ADO.NET中更多的是從數(shù)據(jù)源中抽取數(shù)據(jù),并且為讀取和分析數(shù)據(jù)提供新的編程接口