请教,服务器端的数据库连接是及时断开还是一直开着的好?

时间:2022-01-03 17:19:50
服务器端的数据库连接是及时断开还是一直开着的好?


如果使用后就关闭的话,那N多用户不停的连接进来操作,一开一关的不是很浪费资源么?

还是一直打开不关。这样就省了开关的时间。

7 个解决方案

#1


这个问题没有确定答案,根据实际情况而定,所谓耗费资源,其实也没有那么邪乎。

#2


引用 1 楼  的回复:
这个问题没有确定答案,根据实际情况而定,所谓耗费资源,其实也没有那么邪乎。


现在的服务数据库连接是一直开着的。但服务器端有时候会发生错误   “要求已打开且可用的连接。连接的当前状态为正在连接”

所以不知道是不是因为 数据库连接一直没关,所有人都使用同一个连接实例来操作数据库 造成这种错误。

#3


还是看代码吧,你这样说我也不明白具体情况,不过首先任何一个用户进来的时候我都会分配一个新的连接给他,一般情况下处理完后就会Close。但是如果这个用户是一个确定的长任务用户,那么当然就会一直分配给他。所有都是看具体情况而定的。

#4


一般是用完后都关闭吧

#5


ADO.net 都是用连接池了,即使你在代码中释放,Connection并没有真的释放,只是释放到连接池。下次同样ConnectionString的连接需要被创建时,先在连接池中找。找到就返回,因此开销并不太大。

#6


连接池参考:
微软MVP为您详述ADO.NET连接池
http://space.itpub.net/12639172/viewspace-630624

#7


结论是,用完就释放。

#1


这个问题没有确定答案,根据实际情况而定,所谓耗费资源,其实也没有那么邪乎。

#2


引用 1 楼  的回复:
这个问题没有确定答案,根据实际情况而定,所谓耗费资源,其实也没有那么邪乎。


现在的服务数据库连接是一直开着的。但服务器端有时候会发生错误   “要求已打开且可用的连接。连接的当前状态为正在连接”

所以不知道是不是因为 数据库连接一直没关,所有人都使用同一个连接实例来操作数据库 造成这种错误。

#3


还是看代码吧,你这样说我也不明白具体情况,不过首先任何一个用户进来的时候我都会分配一个新的连接给他,一般情况下处理完后就会Close。但是如果这个用户是一个确定的长任务用户,那么当然就会一直分配给他。所有都是看具体情况而定的。

#4


一般是用完后都关闭吧

#5


ADO.net 都是用连接池了,即使你在代码中释放,Connection并没有真的释放,只是释放到连接池。下次同样ConnectionString的连接需要被创建时,先在连接池中找。找到就返回,因此开销并不太大。

#6


连接池参考:
微软MVP为您详述ADO.NET连接池
http://space.itpub.net/12639172/viewspace-630624

#7


结论是,用完就释放。