因为数据库链接可能在程序的整个运行周期都能用的到,所以既可以设计成链接类,需要时实时实例化,用完就关闭,又可以设计成全局静态类,直接访问就行了。我看到网上有不少人使用实时实例化这种方式,说是可以节省资源,但是我怎么觉得在这里使用全局静态类更省资源呢,它只在程序开始运行时建立一次,打开一次,后面就直接执行操作就行了,既不用再实例了,也不用再打开连接了。搞不懂,请前辈们指点。谢谢!

解决方案 »

  1.   


    许许多多真正的操作,你根本不能共享连接。例如 System.Data.SqlClient 命名空间下的 DBReader 就会独占 DBConnection 而使得其它一些访问 DBConnection的操作崩溃。另外,比如asp.net服务本来就是多线程的,多线程使用共享连接也会让程序崩溃。你认为共享连接省事,可能主要是因为写的程序使用场景太小、单线程的问题造成的。
    在你讨论.net的数据库连接时,一定要先说清楚你是否是在谈论.net框架的那些有缓冲池管理能力的数据库连接。不要泛泛地用一个“数据库连接”的概念,有缓冲池和没有缓冲池管理能力的数据库连接在技术上根本是不一样的。
      

  2.   

    Sorry,不是“缓冲池”,是“连接池”,我上面写错了这个词。