前提:网站需要频繁读取和写入数据库;问题1:第一次打开数据库,执行完成后有没有必要立即关闭连接?是保持打开状态效率高还是重复:打开--关闭的效率高?
问题2:很多数据表都放在一个数据库中效率高,还是分成若干个独立的数据库效率高?

解决方案 »

  1.   

    如果你是使用SqlConnection,那么Close方法就是把联接放入连接池管理,而不是什么“关闭”。想法,不close,也就是不交还联接池,那么你的程序的一个小小bug(例如又在某个地方open了一个新的而不是共用上一个)就会被调用上百次,造成上百个连接不能交还联接池。不要用简单的名字对号入座。多于不同的数据库实现方法是不同的。也许其他的数据库(例如Access)不是,但是SqlConnection的关闭就是交还联接池管理。
      

  2.   

    问题1的补充:我用ASP.NET+Access进行设计。具体一点就是:
        a:如果应用程序启动时就连接一个数据库,当其它用户访问时,只需更新相应的查询语句 就可以得到相应的数据;
        b:每一个到访用户,都执行一次数据库的打开--查询---关闭循环。
       a 和 b 哪个效率高???问题2的补充:比如我有10张表,A-J    数据库设计:
           mdb1:包含A-G表中数据存在一定的关系且使用最频繁;
           mdb2:包含H-I表与其它没有什么关系,而且数据量很小;
           mdb3 :表J表记录用户访问的IP和时间,与其它表关系不大,但数据量很大。   合并方案:
           mdb1与mdb2:如果只访问H-I中的数据,A-G会不会成为影响访问速度的累赘?
           mdb1与mdb3 :会不会由于表J的海量数据而影响表A-G的频繁访问速度?
    肯请高手给一个合理的合并方案.....................