※ 引述《lobnqii (lobnqii)》之銘言:
> ※ 引述《GP03.bbs@aeug.twbbs.org (Gundam Pilot)》之銘言:
> ...deleted
> > 一個design pattern不能完全適用所有的狀況
> > 簡潔的程式也未必一定是好程式
> > 開開關關的機制之前提過了,在ADO.Net有Connection Pool在處理
> > 目的是為了節省"資源" ...當然這個資源先前沒說清楚是Sql Server的資源
> > "如果"..connection從頭開到尾是最省資源的方式,那connection pool存在的目的是?
> > 小弟不知貴兄多年專案是那個領域的,不過小弟有個疑惑
> > 如果有台Sql server不要說千人..百人就好..有百人佔著connection
> > 這樣比較省資源
> > 還是當使用到connection時,由connection pool去管理connection資源
> > 當有須要Query時才"打開"連線 (是打開,不是建立...這在connection pool是不同的)
> > 比較省?!
> > 百人連線能確定"使用中"的有多少?"Idel"中的應該是佔大多數吧
> > 由其以瀏覽資料為取向的功能時....大多數時間使用者都在"瀏覽" Query出的"資料"
> > 但此時確"佔著"connection不放....(此時在Sql server看看使用者list就知道..恐怖)
> > 但也或許connection pool的方法不適用於貴兄的專案狀況
> > 而且無論是開開關關或是一直開著都不會改變程式執行的結果
> > 但本人提出"開開關關"的觀念是習自MSDN對於ADO.Net 的connection pool機制
> > 還有一個觀念是..."開開關關"在有connection pool 是為了節省資源與增加效能
> > 但...如果把pool給關了,或pool的數量不設定不符需求...那效能只能用慘字形容
> 關於Connection Pool的機制,由於敝人沒有正式去測過.Net,所以無法評論其作用
> 的利弊。(有時候,吾人會以為後出的東西比較好用,其實,就以VB.Net而言,果真
...deleted
補充一點:
連線一直開關的方式有一個弊病!
那就是很容易就違反連線授權數,若是寫在區域內,使用者有十人,而只有五個授
權連線,肯定會違法。
若寫在全域(web)或.dll(Lan)之內,就一定要寫程式並跑迴圈偵測這個連線倒底是
否有被打開?在沒打開(被關閉)之下才能進行開啟及存取的動作。
這樣顯的很麻煩,在兩權相害取其輕的狀況下,那是不如從頭就打開,就直接執行
讓所有的查詢去排隊,失敗再reload一次即可。若因排隊而time out 的機率很小ꄊ當出現時,那大概都是資料庫table & PK 設計不良,反而程式的問題比較少(爛指
令可以用分散table的方式來減輕資料庫鎖住機率)。
--
┌─────◆KKCITY◆─────┐ ■ KKBOX 可立刻 聽音樂 ■
│ bbs.kkcity.com.tw │ ■■所有想找的歌通通不必等 ■■
└──《From:203.204.90.144 》──┘ ■■■http://www.kkbox.com.tw■■■