2008-08-12 63 views
3
  • 這是什麼?
  • 如何使用MS SQL實現連接池?
  • 有哪些表現後果時
    • 執行多個查詢單後,其他(即使用具有30K +迭代循環中調用存儲過程)?
    • 執行一些需要很長時間(10分鐘以上)的查詢嗎?
  • 是否有最佳做法?

回答

3

連接池是一種重用連接的機制,因爲建立新的連接速度很慢。

如果您使用MSSQL連接字符串和System.Data.SqlClient,那麼您已經在使用它 - 在.Net中,這個東西大部分時間都處於隱藏狀態。

作爲服務器端遊標(查找T-SQL遊標語句),取決於您在存儲區外的每個步驟中執行的操作,30k迭代循環可能會更好。

長時間查詢很好 - 但要小心從網頁調用它們,因爲Asp.Net並沒有真正針對長時間等待進行優化,並且一些連接將被切斷。

2

有關連接池事情的更多信息......您已經在SqlClient中使用它,但前提是您的連接字符串對於您打開的每個新連接都是相同的。我的理解是,框架會在可能時自動連接連接,但如果連接字符串從一個連接到下一個連接稍有不同,那麼新連接將不會從連接池中獲取 - 它會重新創建(因此它更加昂貴)。

您可以在XP/Vista上使用性能監視器應用程序來觀察SQL連接,您將很快看到是否正在使用池化。看看下性能監視器中的「.NET CLR數據」類別」

0

我第二基思;如果你調用存儲過程30000次,你比連接池遠遠更大的問題

-3

你的問題並提供部分this thread回答。一搜索就會發現這個..連接池,其中的Google會用頭撞是this回答哪會只留下最佳實踐,我認爲該定義..

會是一個很好的問題:)

+1至Keith's Answer。他擊中了腦袋上的指甲。

剛從FAQ禮貌提醒:

您已經搜查問你的問題之前 互聯網,你來 美國軍隊與你的問題的研究和信息 ,對吧?