数据库连接是创建新的还是重用?

时间:2011-03-02 06:01:50

标签: c# .net

我有一个Windows服务应用程序,它每5秒轮询一次数据表,想知道我应该每次创建一个连接并重复使用它,或者每次在5秒后创建新连接以从数据库读取。

4 个答案:

答案 0 :(得分:2)

重用最有效。利用内置连接池功能。

http://msdn.microsoft.com/en-us/library/8xx3tyca.aspx

答案 1 :(得分:2)

要说清楚,当你说“创建一个单一的连接”时。我知道要创建一个连接对象的实例。

然后是,在服务启动时创建一个连接实例,并在服务停止时处理它。

但是,每次使用前后都要确保连接打开()和关闭()。

ADO.NET会将物理连接汇集到数据库中,这样就不会出现任何性能问题。

答案 2 :(得分:0)

除非有很多其他应用程序竞争与同一个DB的连接,否则我会重用该连接。但是,您应该在使用之前检查连接状态,因为连接可能由于某些原因而变得陈旧,例如:数据库重新启动,管理员杀死所有活动连接或任何其他Murphys。如果连接过时,请创建新连接并开始使用它。

答案 3 :(得分:0)

声明一个静态的Connection属性。在get方法中,检查连接,如果连接未打开,请再次连接。这样的事情..

public static SqlConnection conn
get{
  if(this == null)
  {
      this = new SqlConnection();
  }else{
      if(!this.Open()){
          this.Connect();
      }
  }
}

你现在可以使用conn。