【问题标题】:How to create a connection pool of connections to the SQL Server Database, ensuring any connections are kept Open如何创建与 SQL Server 数据库的连接的连接池,确保所有连接保持打开状态
【发布时间】:2019-11-26 11:31:24
【问题描述】:

对于我在 .NET Core 2.2 中开发的项目,我正在尝试实现 SQL Server 数据库连接的连接池。因此,每当业务实体需要连接任何数据库时,它只会从连接池中提取连接并使用。还需要保持连接池中的连接处于活动状态。所有数据库都在 Azure 中。

您能否指导我或提供一个示例,如何在 C# 代码中实现连接池? 连接池是否可以使用任何标准库来实现?

【问题讨论】:

    标签: sql-server azure-sql-database asp.net-core-2.2


    【解决方案1】:

    使用System.Data.SqlClientMicrosoft.Data.SqlClient 指定Min Pool Size= 连接字符串关键字以指示初始池连接数。这些物理连接在不使用时将在池中保持打开状态。

    连接通常是按需获取并在几分钟不使用时自动关闭,因此此设置通常仅用于特殊情况。见SQL Server Connection Pooling (ADO.NET)

    【讨论】:

    • 连接池中的连接数达到最大池限制的情况如何处理?根据我的要求,在这种情况下,我需要调整最大池限制。但不知道怎么做。
    • @MarsRoverII,连接池将自动增长到 100 个连接的默认限制或Max Pool Size。如果您达到了默认的最大池大小 100,则您可能会遇到其他问题,即增加池大小不是解决方案。达到限制可能是由于连接管理不善(未关闭/释放连接)、需要查询/索引调整的长时间运行的查询、长期阻塞或在数据库服务器上投入的工作超出了它的处理能力。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2013-09-10
    相关资源
    最近更新 更多