精華區beta Programming 關於我們 聯絡資訊
※ 引述《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