none
Asp.net连接池问题 RRS feed

  • 问题

  • 我的问题看下面的代码

    connection.open()
    SqlHelper.ExecuteNonQuery(connection,sql1) //第一个sql操作
    SqlHelper.ExecuteNonQuery(connection,sql2) //第一个sql操作
    connection.close();
    
    

    这是我以前会这么写的,我知道连接池设置为true的时候  connection的Open和Close并没有真正的开闭而是返回到连接池中

    假设pooling 是true,所以我现在就这么写

    SqlHelper.ExecuteNonQuery(sql1) //第一个sql操作,内部有open和close
    SqlHelper.ExecuteNonQuery(sql2) //第二个sql操作,内部有open和close

    这么写会有很大开销吗? 我现在是三层开发,并不想在逻辑层使用SqlConnection,所以我才问这样的问题。

    既然开启了连接池,代码的open和close并没有真正开闭,那直接我第二种方法应该没有任何开销,  是不是?  真正开发的时候大家是怎么做的呢?? 


    快乐地编程到老

    2012年5月21日 4:45

答案

  • 你的第二种写法不会有很大的开销。

    Open 时,池进程就会查找池中可用的连接。如果某个池连接可用,会将该连接返回给调用者,

    而不是打开新连接。Close 时,池进程会将连接返回到活动连接池集中,而不是关闭连接。

    Open 调用中重复使用。

    http://msdn.microsoft.com/zh-cn/library/8xx3tyca.aspx

    <span data-guid="10d68f70533cef7b58e0df34533966f9" data-source="Once the connection is returned to the pool, it is ready to be reused on the next Open call." id="mt12" jQuery17108427839637901475="12">


    http://blog.csdn.net/zx13525079024

    2012年5月23日 1:15

全部回复

  • 米有人么...

    快乐地编程到老

    2012年5月22日 2:35
  • 你的第二种写法不会有很大的开销。

    Open 时,池进程就会查找池中可用的连接。如果某个池连接可用,会将该连接返回给调用者,

    而不是打开新连接。Close 时,池进程会将连接返回到活动连接池集中,而不是关闭连接。

    Open 调用中重复使用。

    http://msdn.microsoft.com/zh-cn/library/8xx3tyca.aspx

    <span data-guid="10d68f70533cef7b58e0df34533966f9" data-source="Once the connection is returned to the pool, it is ready to be reused on the next Open call." id="mt12" jQuery17108427839637901475="12">


    http://blog.csdn.net/zx13525079024

    2012年5月23日 1:15
  • 那也就是说我三层开发提的那个建议  就是我的问题加粗字体  既然开销可以忽略不计 我采用第二种写法 应该没问题是吧    

    快乐地编程到老

    2012年5月23日 5:27
  • 可以,建议你使用Microsoft.ApplicationBlocks.Data.dll里面的SQLHELPERL来操作数据库,

    Microsoft.ApplicationBlocks.Data.dll 微软官方组件 优化了数据库访问层


    http://blog.csdn.net/zx13525079024

    2012年5月23日 5:43