2011-03-02 31 views
2

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

+0

我没有看到重复使用的任何缺点,而每次创建新连接都必然会影响性能。 – 2011-03-02 06:08:30

回答

0

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

0

声明一个静态连接属性。在get方法中,检查连接,如果连接没有打开,请重新连接。像这样。

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

您可以立即使用conn。

2

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

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

但是,请务必在每次使用它之前和之后打开()和关闭()连接。

ADO.NET会将物理连接池化为数据库,因此您不会有任何性能问题。