主要目的是为了提高数据库访问效率

解决方案 »

  1.   

    我只做过把 DataSet 缓存在 Application 中。只要并发访问它的端点少,速度还是挺快的。
      

  2.   

    当连接打开时,将根据一种精确的匹配算法来创建连接池,该算法会使连接池与连接中的字符串相关联。每个连接池都与一个不同的连接字符串相关联。当新连接打开时,如果连接字符串不精确匹配现有池,则将创建一个新池。在以下示例中,将创建三个新的 SqlConnection 对象,但只需要使用两个连接池来管理这些对象。请注意,第一个和第二个连接字符串的差异在于为 Initial Catalog 分配的值。SqlConnection conn = new SqlConnection();
    conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=northwind";
    conn.Open();      
    // Pool A is created.SqlConnection conn = new SqlConnection();
    conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=pubs";
    conn.Open();      
    // Pool B is created because the connection strings differ.SqlConnection conn = new SqlConnection();
    conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=northwind";
    conn.Open();      
    // The connection string matches pool A.
    连接池一旦创建,直到活动进程终止时才会被毁坏。非活动或空池的维护只需要最少的系统开销。连接池是为每个唯一的连接字符串创建的。当创建一个池后,将创建多个连接对象并将其添加到该池中,以满足最小池大小的要求。连接将根据需要添加到池中,直至达到最大池大小。当请求 SqlConnection 对象时,如果存在可用的连接,则将从池中获取该对象。若要成为可用连接,该连接当前必须未被使用,具有匹配的事务上下文或者不与任何事务上下文相关联,并且具有与服务器的有效链接。如果已达到最大池大小且不存在可用的连接,则该请求将会排队。当连接被释放回池中时,连接池管理程序通过重新分配连接来满足这些请求。对 Connection 调用 Close 或 Dispose 时,连接被释放回池中。