2012-09-21 49 views
2

我有一個經典的ASP(VBScript)Web應用程序連接到SQL服務器。在某些頁面上,我打開多個數據庫連接來提取數據。正確關閉數據庫連接 - VBScript + MS SQL

我的問題是:

是更好地在每個頁面的底部添加一個緊密連接功能或使用後,明確地關閉連接吧?請記住,在這些特定頁面上,每次獲取數據時都會重新打開數據庫連接;我不重複使用連接。 IE:

Set DBread = Server.CreateObject("ADODB.Connection") 
DBread.Mode = adModeRead 
DBread.Open (SQL_DB_CONN) 

當我關閉連接,我用:

DBread.Close 
Set DBread = Nothing 

所以,我應該不斷開拓然後關閉連接或經常打開的連接,然後在頁面的最後一次關閉它們?

回答

2

你應該打開一個連接,使所有查詢在你的頁面的頂部,然後立即關閉連接作爲最後的查詢執行

例子:

Set DBread = Server.CreateObject("ADODB.Connection") 
DBread.Mode = adModeRead 
DBread.Open (SQL_DB_CONN) 

'Make SQL Calls Here and Save rows of data by using the getrows function 

DBread.Close 
Set DBread = Nothing 

'Process rows of data here 
+0

謝謝,但因爲我正在調用許多外部函數進行查詢,所以我嘗試打開函數中的連接以便在其他頁面上使用。 – xweb

+0

你肯定應該使用全局函數來打開和關閉連接,但是如果你重新考慮你的代碼,開放和關閉會不必要地在你的數據庫服務器上產生更多的負載以及網絡流量,這可能是最好的 –

+0

也許你的函數可以檢查連接已經打開並使用它。你可以讓DBread成爲一個全局變量,並保持它不變,如果DBread不是空的 –

2

保持你的連接打開的儘可能縮短時間。 Connection pooling會擔心你的效率。

但是,如果您有連續的數據庫操作,它們可以共享相同的連接。這也可以讓你使用交易。

+0

非常有趣的文章! – Rafael