自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

介紹使用ADO.NET連接池解決辦法

開發(fā) 后端
數(shù)據(jù)庫連接請求可以直接通過連接池滿足而不需要為該請求重新連接、認證到數(shù)據(jù)庫服務器,這樣就節(jié)省了時間。下面就對ADO.NET連接池進行學習討論。

一種CS架構的程序,直接把SQL Server作為服務端,每個客戶端直接連接數(shù)據(jù)庫操作,如果客戶端打開的數(shù)量過多時SQL Server的連接數(shù)將會特別高,數(shù)據(jù)庫端形成性能瓶頸,這種情況下怎么辦?想了想,造成這種情況的原因是ADO.NET連接池的內(nèi)部機制造成的。

ADO.NET中為了提高性能,所以使用了連接池,這樣每個請求就不必都創(chuàng)建一個連接,然后認證,然后執(zhí)行SQL,ADO.NET連接池而是從連接池中直接取出連接執(zhí)行SQL,執(zhí)行完成后也并不是真正關閉連接,而是將該連接重新放回連接池中。如果有100個客戶端,每個客戶端在使用一段時間后連接池中保存了10個連接,那么在這種情況下,即使不在客戶端做任何操作,SQL Server上都有1000個連接,這樣不出性能問題才怪。

既然是連接池的問題,針對該問題的2個解決辦法:

1.關閉ADO.NET連接池,每次執(zhí)行SQL時都是新建一個連接執(zhí)行,然后關閉。這樣做將使數(shù)據(jù)查詢有所減慢(每次都建立連接,每次都認證,當然會慢了),不過這個慢是毫秒級的,一般感覺不到的,但是如果一個操作就涉及到幾百個SQL語句的情況可能會明細感覺到減慢。修改方法特別簡單,都不用修改代碼,在數(shù)據(jù)庫鏈接字符串中加入Pooling=False;即可。#t#

2.修改架構,這種CS架構除了性能問題外還會出現(xiàn)其他的比如安全上的問題??梢詫⒅苯舆B數(shù)據(jù)庫的方法改成連接服務,這其中可以使用Remoting、Web服務等,當然現(xiàn)在可以統(tǒng)一用WCF了。這樣做就只有服務程序去連接數(shù)據(jù)庫,而客戶端只連接服務程序,這樣就不會出現(xiàn)連接池造成的瓶頸。不過這樣做代碼修改量很大,若真要改還是很痛苦的。

介紹ADO.NET連接池

連接池允許應用程序從連接池中獲得一個連接并使用這個連接,而不需要為每一個連接請求重新建立一個連接。一旦一個新的連接被創(chuàng)建并且放置在連接池中,應用程序就可以重復使用這個連接而不必實施整個數(shù)據(jù)庫連接創(chuàng)建過程。

當應用程序請求一個連接時,連接池為該應用程序分配一個連接而不是重新建立一個連接;當應用程序使用完連接后,該連接被歸還給連接池而不是直接釋放。確保你每一次的連接使用相同的連接字符串(和連接池相同);只有連接字符串相同時連接池才會工作。如果連接字符串不相同,ADO.NET連接池應用程序就不會使用連接池而是創(chuàng)建一個新的連接。

責任編輯:chenqingxiang 來源: chinaunix
相關推薦

2009-12-23 14:53:28

ADO.NET連接池

2009-11-11 14:04:14

ADO.NET連接池

2009-11-03 15:58:22

2009-11-03 16:51:04

ADO.NET連接池觀

2009-12-23 09:01:15

ADO.NET連接池

2009-11-13 13:11:37

ADO.NET連接池

2009-12-23 09:14:52

ADO.NET連接池

2009-11-12 09:25:21

ADO.NET連接池

2009-12-24 09:49:02

ADO.Net連接池

2010-01-05 10:11:23

ADO.NET連接池

2009-11-03 16:57:34

ADO.NET FAQ

2010-02-25 09:06:40

ADO.NET連接池

2009-12-30 16:26:12

ADO.NET連接池

2009-07-20 14:03:43

Ado.net連接池

2009-09-09 10:23:59

ADO.NET連接

2010-01-04 16:18:13

ADO.NET連接池

2009-06-26 14:41:48

ADO.NET

2009-11-12 08:59:18

ADO.NET數(shù)據(jù)庫連

2009-07-21 11:05:49

關閉ADO.NET連接

2009-11-03 16:04:29

點贊
收藏

51CTO技術棧公眾號