溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

ADO啟動(dòng)連接時(shí)出現(xiàn)問(wèn)題怎么辦

發(fā)布時(shí)間:2021-12-04 16:03:12 來(lái)源:億速云 閱讀:145 作者:iii 欄目:編程語(yǔ)言

這篇文章主要講解了“ADO啟動(dòng)連接時(shí)出現(xiàn)問(wèn)題怎么辦”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“ADO啟動(dòng)連接時(shí)出現(xiàn)問(wèn)題怎么辦”吧!

ADO啟動(dòng)連接作為一個(gè)高效的.NET程序語(yǔ)言。其混合了函數(shù)語(yǔ)言和物件導(dǎo)向程序編制語(yǔ)言,并且***的適用于編程、算法、技術(shù)和探索性開(kāi)發(fā),因此可以在使用的過(guò)程當(dāng)中感受到趣味性和吸引力。

在一個(gè)客戶(hù)機(jī)/服務(wù)器應(yīng)用中,我們可以用好幾種方法把建立和初始化數(shù)據(jù)庫(kù)連接所需要的時(shí)間隱藏起來(lái),使得應(yīng)用程序既能夠打開(kāi)連接,又不需要用戶(hù)等待應(yīng)用程序啟動(dòng)。首先,我們可以嘗試異步連接。

使用異步連接時(shí),ADO啟動(dòng)連接操作之后,不等待連接完成就把控制權(quán)返回給應(yīng)用程序——這樣,應(yīng)用程序就能夠接著執(zhí)行大部份初始化操作,以更快的速度完成form_load事件處理。

如果關(guān)閉并重新建立連接的時(shí)間小于連接池釋放連接的時(shí)間,那么這個(gè)連接實(shí)際上是即時(shí)的。但在許多情況下(特別是用戶(hù)數(shù)量不多時(shí)),讓連接保持打開(kāi)狀態(tài)更具有現(xiàn)實(shí)意義。在中間層組件或ASP頁(yè)面內(nèi)部,如果數(shù)據(jù)庫(kù)查詢(xún)多次重復(fù)出現(xiàn),我建議你讓Connection對(duì)象保持打開(kāi)狀態(tài)。

另外一個(gè)改進(jìn)連接性能的辦法是,避免使用帶有DSN的ODBC。在Microsoft,ODBC已經(jīng)轉(zhuǎn)入了Quick Fix Engineering(QFE,快速修理工程)狀態(tài),它意味著:除非發(fā)現(xiàn)重大BUG,該公司將不再在ADO啟動(dòng)連接或它的驅(qū)動(dòng)程序上花時(shí)間。另外,考慮性能和部署問(wèn)題時(shí),ADO啟動(dòng)連接也是一個(gè)必須關(guān)注的問(wèn)題。DSN必須安裝到客戶(hù)系統(tǒng)上,要求進(jìn)行注冊(cè)表查找,與OLE DB連接相比,

它建立連接所需要的時(shí)間更長(zhǎng)——特別是當(dāng)你用直接編碼的方式指定ConnectionString時(shí),這一點(diǎn)尤其突出。從實(shí)際效果來(lái)看,避免使用DSN降低的系統(tǒng)開(kāi)銷(xiāo)很有限:如果完全取消連接建立過(guò)程,對(duì)于每個(gè)連接,你也許能夠剩下二到五秒時(shí)間(假設(shè)數(shù)據(jù)庫(kù)連接池中已經(jīng)沒(méi)有連接)。然而,如果你的應(yīng)用程序需要頻繁地建立連接,節(jié)省的時(shí)間累計(jì)起來(lái)就很可觀了。

建立數(shù)據(jù)庫(kù)連接的時(shí)候,你要選擇一個(gè)數(shù)據(jù)提供者。Microsoft建議我們使用ADO啟動(dòng)連接提供者替代默認(rèn)的ODBC提供者。對(duì)比***的OLE DB本地提供者和功能類(lèi)似但較早的ODBC提供者,我感到前者令人不愉快的意外之事較少。但無(wú)論是哪種情況,你都應(yīng)該在決定使用某個(gè)新的提供者之前對(duì)應(yīng)用進(jìn)行完整地測(cè)試——代碼的性能、支持的功能、行為方式都有可能發(fā)生變化。

在中間層和ASP中,在保持連接打開(kāi)的情況下,我們不能(從實(shí)踐來(lái)看)創(chuàng)建出可伸縮的組件——至少在多次調(diào)用之間是這樣的。一般地,當(dāng)IIS引用和釋放組件、ASP頁(yè)面的實(shí)例時(shí),組件和ASP頁(yè)面被頻繁地裝入、丟棄。由于基于ADO的代碼每次執(zhí)行時(shí)都必須建立、使用、釋放數(shù)據(jù)庫(kù)連接,最小化連接復(fù)雜程度的策略對(duì)性能的提高程度達(dá)到了可明顯測(cè)量的程度。在這些情形下,

對(duì)于我們連接數(shù)據(jù)庫(kù)的速度來(lái)說(shuō),ADO啟動(dòng)連接連接/會(huì)話池有著重要的意義。如果你為Command對(duì)象的ConnectionString屬性指定合適的值(即,每次使用同樣的服務(wù)器、初始目錄、登錄ID和其他參數(shù)),那么,連接已經(jīng)打開(kāi)且處于可用狀態(tài)的機(jī)會(huì)很大。如果連接池中能夠找到匹配的連接,連接(或重新連接)的時(shí)間將接近0(通常小于250 ms)。

然而,如果ADO(或VB)代碼不釋放Connection對(duì)象,或者,我們?cè)诓煌膶?shí)例之間改換了ConnectionString,OLE DB必須每次建立一個(gè)新的連接。如果出現(xiàn)了這種情況,我們將很快耗盡連接池內(nèi)可用連接的數(shù)量。要確保連接被釋放,我們必須在關(guān)閉連接之后把Connection對(duì)象設(shè)置為Nothing。另外,ADO啟動(dòng)連接不要在Recordset Open方法中使用ConnectionString,而是以獨(dú)立的方式打開(kāi)Connection對(duì)象;這樣,當(dāng)我們要關(guān)閉Connection對(duì)象以及要把它設(shè)置成Nothing的時(shí)候,引用它就很方便了。

感謝各位的閱讀,以上就是“ADO啟動(dòng)連接時(shí)出現(xiàn)問(wèn)題怎么辦”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)ADO啟動(dòng)連接時(shí)出現(xiàn)問(wèn)題怎么辦這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

ado
AI