gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:48:00 26 4
gpt4 key购买 nike

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

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

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

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

此外,我们是否需要在连接被释放回池中之前调用 .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/

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