我有一个XML文件,大小大概在2G,我想把它保存到数据库,请问怎么样才能得到最好的性能。 我现在用先把它读到DataSet,然后Update到SQL,。发现这样很慢。

解决方案 »

  1.   

    预读XSD会快很多,否则2G是非常慢的DataSet读取比直接读取XML文件节点的方式还慢
      

  2.   

    这么大的xml文件,要考虑考虑你的设计合理性了
    试试xmlreader
      

  3.   

    考虑一下把这个文件拆开,分为100个左右的小文件,然后逐个导入,否则在导入过程中如果出错,很难查到具体错误位置。即使用Sql Server直接导入,也会遇到这个问题,2G的XML出错了,很难排查。如果每个文件20M左右,通过Dataset导入就可以了,做个Log功能,一旦出现错误及时记录。
      

  4.   

    系统运行的环境是这样的,公司在全球有很多OFFICE, 而各个OFFICE 之间用的系统很多都不相同,而且数据也不一样,有SQL, ORACLE,还有UNIX下的文件格式.现在要把所有OFFICE的一些数据导入到新的一个报表系统中,正常情况下是一个月的数据, 而大小大概在1.5百万Records.  就考虑中一个COMMON FILE,我想到的是XML. 但是在读XML时,当数据达到1 百万的时候,用DataSet就出现了OUTOFMEMORY的错误了. 我想请教各位,有没有什么解决的办法.谢谢
      

  5.   

    1.若xml格式很简单,对数据不需要再作运算,做一个SQL Server的数据导入就可以了
    2.建议使用XmlReader,逐节点读入,再写入数据库
      

  6.   

    XML不能直接对应到数据库中的某一个表中,会出问题。
    性能的话,可以考虑文本索引(全文索引)
      

  7.   

    xmltextreader,一个节点一个节点的读
      

  8.   

    这么大的XML,系统分析没做好吧。
    如果还用XML的话,建议分为多个XML,搞好格式。