新聞中心
學習ADO連接池是個很枯燥很煩惱的事,和顯示統(tǒng)計的報表,實際減輕了做報表的許多麻煩,初期未注意用戶數(shù)據(jù)量的問題,一直沒有什么問題,但是隨著用戶的數(shù)據(jù)量的急劇增大,已達百萬條,特別是在做內(nèi)聯(lián)接的查詢時。

創(chuàng)新互聯(lián)建站專注于許昌網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供許昌營銷型網(wǎng)站建設(shè),許昌網(wǎng)站制作、許昌網(wǎng)頁設(shè)計、許昌網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)公司服務(wù),打造許昌網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供許昌網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
為了盡量不更改數(shù)據(jù)結(jié)構(gòu)(如可以用增加表的方法,或是用存儲過程的方法,或是用job的方法先期統(tǒng)計等),所以一直在試驗能不能在ADO連接池解決,先后嘗試了許多方法,終于試驗成功,我的連接數(shù)據(jù)庫的公用文件是#t#
ADO連接池其實就是OLEDB連接池,是存在的。不過,MSDN的資料顯示,連接池應(yīng)該有至少一個常駐的連接存在才會起作用,ADO連接池所以應(yīng)該創(chuàng)建一個全局的連接并打開它。然后,在應(yīng)用程序中創(chuàng)建每次可用的臨時連接對象,再使用它。全局對象在程序退出釋放,但并不使用。你可以測試這樣做的效率和共享一個連接對象的效率。
死鎖的原因是因為事務(wù)中加鎖的順序。如果都是隱式的事務(wù)即單條SQL語句基本不會造成死鎖。顯式事務(wù)和游標操作即recordset的movenext等,ADO連接池會造成死鎖,要分析事務(wù)的加鎖過程,更新鎖、只讀鎖、獨占鎖等的次序問題。如果事務(wù)的開始就是獨占鎖或更新鎖大多數(shù)情況不會死鎖。
COM的智能指針_ConnectionPtr已經(jīng)封裝了異常機制不需要FAILED(HRESULT),源程序if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this)); ConnectionPtr.Close是關(guān)閉連接但不是釋放COM對象,釋放對象要_ConnectionPtr.Release(),ADO的程序注意MDAC的版本,***2.6以上。
pooling是ado自己實現(xiàn)的,對開發(fā)者是透明的,不過要想充分利用ado的pooling機制,需要注意幾點問題 ***:ADO連接池必須用完全同樣的連接字符串 第二:用完connection對象后,盡量快的調(diào)用close()關(guān)閉它,在vb,vbscript里也要顯式的調(diào)用close() 這樣ado會自動把連接放入池中,直到超時或應(yīng)用程序關(guān)閉。
com+里的pooling和ado的pooling基本上是不相干的,只有當com+對象池中某對象被完全清除時,和此對象聯(lián)系的ADO連接池中的連接也會清空。 ado.net中連接池和ado中基本相同,只不過你可以明確的選擇不使用連接池機制。
網(wǎng)頁名稱:對于ADO連接池進行顯示
新聞來源:http://m.fisionsoft.com.cn/article/dhhhsoh.html


咨詢
建站咨詢
