gpt4 book ai didi

c# - ConnectionPools 是有一个连接还是多个连接?

转载 作者:行者123 更新时间:2023-12-02 21:46:33 25 4
gpt4 key购买 nike

我们有一个 Web 服务器,它使用单个连接字符串连接到数据库,这使其成为能够使用连接池的有力候选者。

我们需要一个还是多个 SqlConnection 对象?

我们应该在共享内存中设置一个连接并每次使用它,还是应该在每次想要使用任何连接对象时创建一个新连接?

是调用 .Open() 从池中分配它,还是使用相同的连接字符串创建新对象?

此外,在将连接释放回池之前,我们是否需要在连接上调用 .Close(),或者变量超出范围就足够了吗?

我在某处读到(我忘记了具体位置 - 抱歉),您不应该对池中的连接调用 close ,因为它会以某种方式将它们从池中删除。

最佳答案

值得注意的是,相同的连接字符串将重用已返回池的连接,但以任何方式更改它都会导致与服务器建立新连接。

即假设SQLBox的IP为10.0.0.1

using (var conn = new SqlConnection(@"Server=10.0.0.1;...") {
conn.Open();
.. Do work ..
conn.Close();
}
using (var conn = new SqlConnection(@"Server=SQLBox;…") {
conn.Open(); // This will *NOT* reuse the connection from the pool.
.. Do work ..
conn.Close();
}
using (var conn = new SqlConnection(@"Server=10.0.0.1;...") {
conn.Open(); // This *WILL* reuse the connection from the pool.
.. Do work ..
conn.Close();
}

关于c# - ConnectionPools 是有一个连接还是多个连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19426334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com