建立与数据库的连接的开销

Moh*_*ama 1 c# sql-server asp.net

我想知道连接到数据库的性能。关闭每个查询之间的数据库连接是否可行,还是应该在完成之前尝试使其保持打开状态?打开/关闭连接的速度损失是否很高?

And*_*mar 5

ADO.NET将为您“合并”连接。关闭连接时,它并不是真正关闭的,而是放置在池中。当使用相同的连接字符串请求新的连接时,池中的连接将被重用。池是如此之快,以至于实际上打开连接几乎是免费的。

最佳实践是在需要时打开连接,并在紧随其后关闭连接:

using (var db = new SqlConnection(connectionString)) {
    ... retrieve data ...
}
Run Code Online (Sandbox Code Playgroud)

如果您这样编写代码,则完全不必担心连接寿命。