【问题标题】:Connection pooling misunderstanding?连接池的误解?
【发布时间】:2012-01-28 21:05:49
【问题描述】:

来自here

看不懂

他们说 ado.net 不包含连接池机制。

1) 如果我使用 datareader 类,该类使用来自 web.config 文件的连接字符串 - 它是否有/不会有轮询机制?

2) 如果我所有的 sql 连接代码都使用 web.config 连接字符串,是否会启用连接池?还是不?

3) 默认是什么?

【问题讨论】:

    标签: asp.net .net connection-pooling


    【解决方案1】:

    SQL Server 和 Oracle SQL 提供者实现连接池。

    ADO.NET 作为一个框架没有这个概念——例如,没有ConnectionPool 类。如果您查看数据库类型的基类,它们没有任何连接池支持 - 例如,比较 DbConnectionSqlConnection

    回答您的问题:

    1. 如果提供者实现了连接池,它可以使用它。这取决于您使用的提供程序,而不是连接字符串本身,尽管连接池设置是通过连接字符串控制的(如果提供程序支持这些选项)。

    2. SQL Server 和 Oracle providers 是实现池的那些 - 它们将读取连接字符串设置,但连接池是否可用取决于提供者(如果连接字符串禁用池并且它在提供程序中可用,提供程序将禁用它)。

    3. 如果可用,默认是使用连接池(这取决于提供程序)。

    【讨论】:

    • 1) can 依赖什么?如果我正在编写一个常规连接字符串,它会被启用吗?
    • @RoyiNamir - 如果您在连接字符串中没有提及任何关于池化的内容,并且您使用的 provider 支持池化,则默认情况下将启用它(对于大多数提供程序,您需要阅读您正在使用的提供程序的文档)。
    猜你喜欢
    • 1970-01-01
    • 2013-03-28
    • 2011-09-23
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 2013-08-20
    相关资源
    最近更新 更多