本人正在用VB做一个工业数据实时采集的题目,打算采用Sql server数据库,由于数据量非常大,大约每天有上百万条记录,并且系统要求常年运行,因此遇到难题:
  1 如果所有采集到的数据都写入到一个表之中,那么是不是表的容量有限,到一定时间后系统出错。即使系统不出错,大量的数据是不是也会造成查询效率的降低?
  2  于是本人考虑到:当数据达到一定数量后或是以每一天为单位,建立一个新表,可是由于系统需要长年运行,这样得话,数据库中的表的数量也会不断的增多,这也不是办法?
  3  本人又考虑到是不是可以用数据备份/恢复或是导入导出的方式,但是不知应导出成什么格式比较好,方案又应该怎么选择?并且该数据库还要给远程共享,如果数据被导出成其他格式(比如Access格式)远程又如何访问的到呢?

解决方案 »

  1.   

    如果是采集了今天的昨天的不要的话。那么就把昨天的表删除。(可能一般是一个月)就算是100条数据,对SQL来说在同一个表应该不会有什么问题。把内存加大一点就是。如果是所有数据都要的话。就按月生成一个表。如果要查询上月的就启用查询方式查已经结存的库就可以了。我占时不会写VB,只是学习中
      

  2.   

    有关这个问题。。方法还是有的
    建立两个表。一个是当前表一个备份表每天定时将当前表倒入备份表然后清空当前表所有内容每天的数据写入到当前表。。备份表每隔一定时间进行备份备份完了后清空备份表不就OK了。。有关问题3可以使用SQL SERVER中系统存储过程p_backupdb来解决。。导出的格式当然是sql server 的mdb格式了。========================
    苹果。
      

  3.   

    如果真是每天有上百万条记录的话,并且不是经常做查询的话,我建议不要用数据库,直接使用DAT文件来记录,这样只需要一个文件服务器就足够了.
      

  4.   

    工业实时数据采集哦。。所有数据都要保存几年的不允许出错被查询更是必不可少的咧。。数据库建议还是用oracle哦这么大的量winnt+sql平台可能不及linux+oralce稳定========================
    苹果。