打开连接的开销

时间:2009-12-29 06:06:35

标签: c# sql-server-2005 ado

使用C#OPEN语句打开与DB的连接时,是否会影响Web服务器性能或仅影响数据库? 那么,重复打开和关闭数据库连接如何影响Web服务器和数据库。 有人可以给我一些见解。感谢。

2 个答案:

答案 0 :(得分:3)

打开数据库连接是一项相对昂贵的操作。打开数据库连接可能非常昂贵,ADO.NET默认启用connection pooling。如果您没有使用连接池,那么您的应用程序可能会运行得更慢(响应时间缩短),甚至可能遇到可伸缩性问题。

如果您正在使用连接池,则重复打开和关闭SqlConnection不会产生很大的开销,即创建网络连接,使用SQL Server进行身份验证,设置任何连接特定数据(等),而不会出现池(除了最初的物理连接创建)。调用Open时,将从池中检索现有连接(如果可用),并在调用Close时将连接返回到池中。

启用连接池后,我希望在维护打开的连接时,Web和数据库服务器上的内存都会增加。如果您没有使用连接池,那么您可以进行一些测试来衡量性能对两台服务器的影响。

通常这不是您需要担心的事情 - 如有必要,请使用连接池并调整池参数。

答案 1 :(得分:0)

它会影响端到端的响应时间,因为数据库和Web服务器都会发生这种情况。简而言之,即使在轻负载下,您的网页也会加载得更慢。

吞吐量方面,它可能会更多地损害数据库,因为它正在进行所有的身份验证工作,但这只是一个疯狂的猜测。

相关问题