您好,登錄后才能下訂單哦!
本篇內容主要講解“ADO連接池是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“ADO連接池是什么”吧!
學習ADO連接池是個很枯燥很煩惱的事,和顯示統計的報表,實際減輕了做報表的許多麻煩,初期未注意用戶數據量的問題,一直沒有什么問題,但是隨著用戶的數據量的急劇增大,已達百萬條,特別是在做內聯接的查詢時。
為了盡量不更改數據結構(如可以用增加表的方法,或是用存儲過程的方法,或是用job的方法先期統計等),所以一直在試驗能不能在ADO連接池解決,先后嘗試了許多方法,終于試驗成功,我的連接數據庫的公用文件是
ADO連接池其實就是OLEDB連接池,是存在的。不過,MSDN的資料顯示,連接池應該有至少一個常駐的連接存在才會起作用,ADO連接池所以應該創建一個全局的連接并打開它。然后,在應用程序中創建每次可用的臨時連接對象,再使用它。全局對象在程序退出釋放,但并不使用。你可以測試這樣做的效率和共享一個連接對象的效率。
死鎖的原因是因為事務中加鎖的順序。如果都是隱式的事務即單條SQL語句基本不會造成死鎖。顯式事務和游標操作即recordset的movenext等,ADO連接池會造成死鎖,要分析事務的加鎖過程,更新鎖、只讀鎖、獨占鎖等的次序問題。如果事務的開始就是獨占鎖或更新鎖大多數情況不會死鎖。
COM的智能指針_ConnectionPtr已經封裝了異常機制不需要FAILED(HRESULT),源程序if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this)); ConnectionPtr.Close是關閉連接但不是釋放COM對象,釋放對象要_ConnectionPtr.Release(),ADO的程序注意MDAC的版本,***2.6以上。
pooling是ado自己實現的,對開發者是透明的,不過要想充分利用ado的pooling機制,需要注意幾點問題 ***:ADO連接池必須用完全同樣的連接字符串 第二:用完connection對象后,盡量快的調用close()關閉它,在vb,vbscript里也要顯式的調用close() 這樣ado會自動把連接放入池中,直到超時或應用程序關閉。
com+里的pooling和ado的pooling基本上是不相干的,只有當com+對象池中某對象被完全清除時,和此對象聯系的ADO連接池中的連接也會清空。 ado.net中連接池和ado中基本相同,只不過你可以明確的選擇不使用連接池機制。
到此,相信大家對“ADO連接池是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。