成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

剖析ADO.NET連接池優缺點

開發 后端
文章介紹了ADO.NET連接池、如何實現ADO.NET連接池、優點和缺點,希望大家通過本文可以更好的了解連接池這個概念。

ADO.NET經過長時間的發展,很多用戶都很了解ADO.NET了,這里我發表一下個人理解,和大家討論討論。問題,一種CS架構的程序,直接把SQL Server作為服務端,每個客戶端直接連接數據庫操作,如果客戶端打開的數量過多時SQL Server的連接數將會特別高,數據庫端形成性能瓶頸,這種情況下怎么辦?想了想,造成這種情況的原因是ADO.NET的內部機制造成的。

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

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

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

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

介紹ADO.NET連接池

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

當應用程序請求一個連接時,連接池為該應用程序分配一個連接而不是重新建立一個連接;當應用程序使用完連接后,該連接被歸還給連接池而不是直接釋放。

如何實現ADO.NET連接池

確保你每一次的連接使用相同的連接字符串(和連接池相同);只有連接字符串相同時連接池才會工作。如果連接字符串不相同,應用程序就不會使用連接池而是創建一個新的連接。

優點

使用連接池的最主要的優點是性能。創建一個新的數據庫連接所耗費的時間主要取決于網絡的速度以及應用程序和數據庫服務器的(網絡)距離,而且這個過程通常是一個很耗時的過程。而采用數據庫連接池后,數據庫連接請求可以直接通過連接池滿足而不需要為該請求重新連接、認證到數據庫服務器,這樣就節省了時間。

缺點

數據庫連接池中可能存在著多個沒有被使用的連接一直連接著數據庫(這意味著資源的浪費)。

技巧和提示

1. 當你需要數據庫連接時才去創建連接池,而不是提前建立。一旦你使用完連接立即關閉它,不要等到垃圾收集器來處理它。

2. 在關閉數據庫連接前確保關閉了所有用戶定義的事務。

3. 不要關閉數據庫中所有的連接,至少保證連接池中有一個連接可用。如果內存和其他資源是你必須首先考慮的問題,可以關閉所有的連接,然后在下一個請求到來時創建連接池。

  1. Console.WriteLine("ReturnValue: {0}", rowCount.ToString())  
  2. Console.WriteLine("All Rows:")  
  3. Dim row As DataRow  
  4. For Each row In categories.Rows  
  5. Console.WriteLine("{0}: {1}", row(0), row(1))  
  6. Next  
  7. End Using  
  8. End Sub 


 

責任編輯:田樹 來源: 博客
相關推薦

2009-12-23 09:01:15

ADO.NET連接池

2009-11-03 16:51:04

ADO.NET連接池觀

2010-01-05 10:11:23

ADO.NET連接池

2009-11-03 15:58:22

2009-12-23 14:53:28

ADO.NET連接池

2009-11-12 09:25:21

ADO.NET連接池

2009-11-11 14:04:14

ADO.NET連接池

2009-11-04 16:23:09

ADO.NET存儲過程

2009-11-12 10:45:45

ADO.NET連接測試

2009-12-23 09:14:52

ADO.NET連接池

2009-12-30 16:22:58

ADO.NET連接池

2009-07-20 14:03:43

Ado.net連接池

2010-02-25 09:06:40

ADO.NET連接池

2009-12-24 09:49:02

ADO.Net連接池

2010-01-04 16:18:13

ADO.NET連接池

2009-06-26 14:41:48

ADO.NET

2009-11-03 16:04:29

2009-12-30 16:26:12

ADO.NET連接池

2009-07-21 11:05:49

關閉ADO.NET連接

2009-11-03 16:57:34

ADO.NET FAQ
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品91视频 | 午夜av毛片 | 国产精品久久在线观看 | 久精品久久 | 欧美专区日韩 | 亚洲精品9999 | 精品久久久一区二区 | 超碰3| 亚洲国产成人精品女人久久久 | 色综合九九 | 久久久久www | 午夜免费影视 | 欧美视频二区 | 黄网在线观看 | 日韩在线播放第一页 | 欧美一级片 | 国产精品久久久久久久久久久久久久 | 国产精品海角社区在线观看 | 黄色在线免费观看视频网站 | 国精品一区二区 | 超碰520 | 欧美黄色一区 | 中文字幕国产 | 久久精品99 | 久久久久久久久久久久久九 | 日韩精品a在线观看图片 | 九九亚洲 | 成人久久18免费网站图片 | 91久久久久久| 天天操天天干天天爽 | 一区二区国产精品 | 成人av免费网站 | 成人国产综合 | 人妖一区 | 久久久欧洲 | av片在线观看网站 | 亚洲视频免费在线观看 | 久久亚洲天堂 | 91精品在线看| 免费艹逼视频 | 国产美女在线观看 |