1. 数据库连接应该只在需要的时候打开,不需要的时候马上释放掉. 共用数据库连接是由系统的Connection Pool来实现的,不用也不应该在应用程序中考虑.需要注意的是Connection String要一模一样,这样Connection Pool才能重用该连接.2. 应该是这样. 但也要具体问题具体分析.3. ADO.Net的效率主要在于数据库的Data Provider.不知道PRO*C是否更好.4. 每一次访问数据库尽量返回少量的数据(比如说可以分页或加条件),每一个事务尽量短,最好使用存储过程,等等.在Web Service服务器上最重要的是连接不用马上释放.

解决方案 »

  1.   

    谢谢,谢谢,终于有人回答了,还有没有其他人的发言啊?另外对:weifenluo(weifenluo)说的第一点的,总是有点不放心的,DNA里面的COM+组件,在com+环境里面注册后,可以明明白白看到是否启用了pool,包括pool的大小,等等东西都是可以配置的,可是在.net里面,怎么都变成透明的了呢?像多知道一些.net 的pool方面的一些东西!
      

  2.   

    System.Data.SqlConnection中有很详细的内容。参考MSDN。
      

  3.   

    那么,各位觉得,在大客户俩的时候,ado.net表现如何呢?(速度,稳定性等方面谈谈,谢谢)
      

  4.   

    bobit(迎着风):WebServices服务器<---------->OracleDB,连接后,不断开连接的,不就没有你的疑惑了么? 再说了,第二此处理还有池呢,不会像第一次那么慢了!
      

  5.   

    完成的连接只是保存在pool里你要用了就拿出来再给某个连接用,当中不断掉的
      

  6.   

    谢谢,我已经看了Framework的文档了,现在明白了。
    SQL ServerDB也实现了连接池。
    不过我用非池化的SQL连接测试了一下居然连续100次的连接和断开也只要350豪秒左右
    P4 1.7 + 256DDR + Windows 2003