打开数据连接

时间:2010-03-26 16:13:47

标签: c# database connection

在c#.net中打开与数据库的连接时,在我的情况下是oracle,是否涉及到很多开销?我猜不会因为连接池而存在。所以我说的是,每当我打开一个连接时,它实际上会从池中获取一个打开的连接,如果池中没有可用的连接,那么它将打开一个新连接吗?

谢谢!

2 个答案:

答案 0 :(得分:4)

你是对的。有很多好文章解释了ADO连接池。例如,MSDN - SQL Server Connection Pooling (ADO.NET),其中包含:

  

连接池减少了数量   新连接必须是的时代   打开。合伙人保持所有权   物理连接。它管理   通过保持一组的连接来建立联系   每个给定的活动连接   连接配置。每当一个   用户调用在连接上打开,   pooler寻找可用的   池中的连接。如果汇集了   连接可用,它返回它   调用者而不是打开新的   连接。当应用程序调用时   关闭连接,pooler   将其返回到合并的活动集   连接而不是关闭它。   一旦连接返回到   游泳池,它准备重新使用   下一次公开电话。

答案 1 :(得分:2)

第一次打开连接时会产生很多开销。如果您正在使用连接池并且使用完全相同的连接字符串,则下次打开连接时,它应该使用连接池中的连接并且要快得多。