连接池

连接到数据源可能很耗时。 为了最大程度地降低打开连接的成本,ADO.NET 使用一种称为 连接池的优化技术,从而最大限度地减少了反复打开和关闭连接的成本。 .NET Framework 数据提供程序处理连接池的方式有所不同。 虽然连接池提高了性能和资源利用率,但多种因素可能会影响其效率,具体取决于数据库环境和配置:

  • 连接限制和资源约束: 在数据库环境中,连接限制通常绑定到服务层或资源配置。 例如,Azure SQL 数据库根据所选服务层定义连接限制,而 Azure SQL 托管实例根据分配的资源(例如 CPU、内存或 vCore)强制实施限制。 当连接池配置超过这些限制时,应用程序可能会遇到被拒绝的连接、限制或性能下降。

  • 身份验证方法: 基于令牌的身份验证机制(如 Microsoft Entra ID 身份验证)可能因令牌过期而影响连接池。 过期的令牌可能会使池中的连接失效,从而中断重用。 此行为发生在使用新式身份验证协议的基于云的数据库系统和本地数据库系统中。

  • 网络延迟和终结点: 网络延迟和终结点配置可能会影响连接池的效率。 公共终结点(通常用于云托管的数据库)通常比专用或直接连接引入更高的延迟。 在具有动态 IP 寻址的云原生应用程序中,如果未更新防火墙规则以适应更改的 IP 地址,则连接重用可能会中断。

  • 加密要求: 强制实施 TLS/SSL 加密的数据库需要在连接池配置和加密设置之间保持一致。 例如,省略连接字符串中所需的加密参数(如 Encrypt=True),可能会导致连接失败,从而减少池效率。

  • DNS 解析:专用终结点和自定义 DNS 配置可能会给使用连接池带来挑战。 配置不当或不一致的 DNS 设置可能会延迟或阻止连接建立,从而影响连接重用的性能和可靠性。 这在具有混合或私有云设置的环境中尤其相关。

本节内容

SQL Server 连接池 (ADO.NET)
概述连接池,并介绍了连接池在 SQL Server 中的工作原理。

OLE DB、ODBC 和 Oracle 连接池
介绍适用于 OLE DB 的 .NET Framework 数据提供程序、用于 ODBC 的 .NET Framework 数据提供程序和用于 Oracle 的 .NET Framework 数据提供程序的连接池。

另请参阅