Sql Server請(qǐng)求超時(shí)問題解決
超時(shí)時(shí)間已到。超時(shí)時(shí)間已到,但是尚未從池中獲取連接。
出現(xiàn)這種情況可能是因?yàn)樗谐剡B接均在使用,并且達(dá)到了最大池大小。
可能原因如下:并發(fā)操作,Connection用后沒有關(guān)閉,或者因?yàn)镈ataReader連接獨(dú)占連接。
解決方法:
1, 修改幾個(gè)關(guān)鍵頁面或訪問比較頻繁的數(shù)據(jù)庫訪問操作,使用DataAdapter和DataSet來獲取數(shù)據(jù) 庫數(shù)據(jù),不要使用DataReader。
2, 在訪問數(shù)據(jù)庫的頁面上使用數(shù)據(jù)緩存,如果頁面的數(shù)據(jù)不是經(jīng)常更新(幾分鐘更新一次)的 話, 使用Cache對(duì)象可以不用訪問數(shù)據(jù)庫而使用緩存中的內(nèi)容,那么可以大大減少連接數(shù)量。
3 ,修改代碼,把使用Connection對(duì)象的地方都在Close()后面加上Dispose()調(diào)用。
4 ,建議對(duì)數(shù)據(jù)庫操作進(jìn)行大的修改,建立自己的數(shù)據(jù)庫操作代理類,繼承System.IDisposable接 口, 強(qiáng)迫釋放資源,這樣就不會(huì)出現(xiàn)連接數(shù)量不夠的問題了
原文鏈接:sql超時(shí)時(shí)間已到。超時(shí)時(shí)間已到,但是尚未從池中獲取連接