数据库是在什么地方 , 都在单机上 , 还是在SERVER上 , 还是在CLIEN上 ,或者是一个在服务器上 , 一个在终端上???

解决方案 »

  1.   

    因为要求是用程序来实现数据转移,所以exp然后imp是不可取的(某些DBMS不支持)。数据库的位置不定,有分开的,也有单机的。
    由于数据库可能有很多键和约束,采用多线程的话是否会破坏数据完整性呢?
      

  2.   

    你是要一次性导过去还是要怎样?如果是一次性导入的话,视情况我一般会将什么外键啊、索引啊、触发器啊、约束啊去掉一些,引入后再重建。也最好别用事务处理,有次我导数据就是因为做了事务处理,有个不合理的唯一索引害我重导了N次(数据量还不算太多,但也不少了)、花了一通宵的时间才找出这个问题。我的经验是,先不管正确不正确,导进去再说,余下时间再去慢慢整理。因为重新整理会一步步来(比如加唯一索引什么的),比较好确定问题所在,要是做事务处理,事务整个回滚了,都不知道是怎么回事,太难跟踪了。当然具体情况具体分析了,如果表特大,重建索引也是很费时间的事。要是经常性的操作,可以引出成第三方的格式再引入啊。有没有想到用XML来做?现在大多DBMS都支持XML的。用DBMS自有的引入功能可能会比你一条条写INSERT效率高些。如果有很多外键约束之类的,肯定是要考虑导入的先后顺序的,那就要靠你去分析该怎么导了。不知道你具体是什么情况,但愿有帮助。
      

  3.   

    呵,按扭全答了,我都没法班门弄斧了。。
    不过如果有空,你也可以自己写个程序来处理,例如使用VB+ADO就可以很简单进行导入导出了,不过效率嘛,呵呵,可能就会慢点的啦,曾经试过写这样的程序,效率比较低。
    建议从数据库来考虑
    其实导出XML是一个很好的办法来的。
      

  4.   

    用bcp,先把数据导入文件,在从文件导到指定数据库,是最快的方法。
      

  5.   

    因为程序需要通用,所以转成xml在某些情况下可能不行。不知道那些成熟的数据集成工具是怎么做的。
      

  6.   

    直接导入不就德了,搞的这么复杂,要不用SQL 语言也行!