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