必须建立物理通道(例如套接字或命名管道),必须与服务器进行初次握手,必须分析连接字符串信息,必须由服务器对连接进行身份验证,必须运行检查以便在当前事务中登记,等等。

 的优化技术。

 调用中重复使用。

 的不同实例将使用不同的连接池,即使用户 ID 和密码相,也是如此。

有关更多信息,请参见本主题后面的“使用连接字符串关键字控制连接池”。

说明

阻塞期结束后的后续失败将导致新的阻塞期,该阻塞期的持续时间是上一个阻塞期的两倍,最长为一分钟。

连接字符串还必须是完全匹配的;按不同顺序为同一连接提供的关键字将分到单独的池中。

 分配的值,第一个和第二个连接字符串有所不同。

 
 
using (SqlConnection connection = new SqlConnection(
  "Integrated Security=SSPI;Initial Catalog=Northwind"))
    {
        connection.Open();      
        // Pool A is created.
    }

using (SqlConnection connection = new SqlConnection(
  "Integrated Security=SSPI;Initial Catalog=pubs"))
    {
        connection.Open();      
        // Pool B is created because the connection strings differ.
    }

using (SqlConnection connection = new SqlConnection(
  "Integrated Security=SSPI;Initial Catalog=Northwind"))
    {
        connection.Open();      
        // The connection string matches pool A.
    }

非活动或空池的维护只需要最少的系统开销。

说明

当出现故障转移等错误时,会自动清除池。

连接在关闭或断开时释放回池中。

连接要可用,必须未使用,具有匹配的事务上下文或未与任何事务上下文关联,并且具有与服务器的有效链接。

如果池进程在连接超时之前无法满足请求,将引发异常。

警告

如何:释放系统资源 (Visual Basic)

说明

垃圾回收

说明

审核注销时间类。

无效连接只有在关闭或重新建立后,才会从连接池中移除。

发生此情况时,初次尝试使用该连接将检测连接是否曾断开,并引发异常。

连接关闭时,将被丢弃,而不是返回池中。

如果在池的每个区域都没有可用的连接,则会创建一个新的连接并登记。

这样,您就可以在之后提交或中止分布式事务。

这样,将打开大量的连接,占用许多内存,从而导致性能降低。

因为集成安全性产生的池碎片

这对特定 Web 应用程序结构会产生副作用,因为开发人员必须衡量安全性和审计要求。

因为许多数据库产生的池碎片

但是,每个数据库的连接存在一个独立的池,这会增加与服务器的连接数。

 字符串变量中指定的所需数据库。

 
// Assumes that command is a SqlCommand object and that
// connectionString connects to master.
command.Text = "USE DatabaseName";
using (SqlConnection connection = new SqlConnection(
  connectionString))
  {
    connection.Open();
    command.ExecuteNonQuery();
  }

SQL application role errors with OLE DB resource pooling(OLE DB 资源池出现 SQL 应用程序角色错误)。

相关文章:

  • 2021-04-19
  • 2022-12-23
  • 2021-11-03
猜你喜欢
  • 2022-01-27
  • 2022-02-16
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-09
相关资源
相似解决方案