LINQ to XML和Excel与OledbConnection之间的速度差异?

在我目前的要求是采取Excel电子表格,用户每周更新一次,并能够查询该文件的某些领域。

到目前为止,我已经将所有的Excel(2007)数据全部推送到一个xml文件中(只是当他们上传文件时,我只是使用xml),然后保存所有需要的数据(不是所有的数据电子表格中的列)用于通过Linq-to-XML查询; 注意xml文件比excel小。

现在我的问题是,查询一个XML文件与Linq和一个Excel文件与OledbConnection之间有任何性能差异? 我只是添加另一个不必要的步骤? 我想后续的问题是,这是值得的易用性继续推到XML。

该文件有大约1000行。

对于每周只做一次的事情,我不认为需要执行任何优化。 相反,你应该把重点放在你和将来维护解决scheme的人都可以维护和理解的东西上。

使用任何你觉得最自然的解决scheme:-)

据我所知,它的性能方面就像这样访问Excel数据。

最快到最慢
1.使用C ++直接在Excel文件types上定制第三方供应商软件。
2.如果数据types需要使用模式文件的OleDbConnection方法,则将Excel视为平面文件数据库。
3. Linq 2 XML方法仅用于Excel 2007文件格式的读/写数据的优越方法。
4.使用OOXML SDK和可选的第三方XML库进行直接的XML数据处理。 再次仅限于Excel 2007文件格式。
5.使用Object [,]数组读取单元格区域(使用.Value2 prop),并将Object [,]数组再次传递到单元格区域(再次.Value2道具)以写入数据。
6.使用.Cells(x,y)和.Offset(x,y)prop访问器分别更新和读取单元格。

您不能使用SqlConnection访问Excel电子表格。 更可能的是,您正在使用OleDbConnection或OdbcConnection。

话虽如此,我猜想使用OleDbConnection来访问Excel工作表会更快,因为您本来就在处理数据,但要知道正在使用的数据的唯一方法是自己testing它,使用Stopwatch类在System.Diagnostics名称空间中,或使用分析工具。

如果你有大量的数据需要处理,你也可以考虑把它放在SQL Server中,然后查询(取决于查询与保存数据所需时间的比率)。

我认为讨论使用该文件进行哪种types的查询非常重要。 我不得不相信,使用LINQ查询比oledbconnection要容易得多,尽pipe我比其他任何事情都更多地谈论经验。

看看这个链接: http : //www.asp.net/learn/linq-videos/video-218.aspx